Delete JavaSemanticServices.getTypeTransformer()
Two clients can depend on JavaTypeTransformer directly instead of JavaSemanticServices
This commit is contained in:
committed by
Pavel V. Talanov
parent
dbf324667f
commit
a0cbe80aca
+8
-9
@@ -27,10 +27,10 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
|
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserializer;
|
import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserializer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
|
||||||
@@ -52,10 +52,10 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
private final JavaValueParameterResolver javaValueParameterResolver;
|
||||||
private final JavaTypeTransformer javaTypeTransformer;
|
private final JavaTypeTransformer javaTypeTransformer;
|
||||||
private final JavaSignatureResolver javaSignatureResolver;
|
private final JavaSignatureResolver javaSignatureResolver;
|
||||||
private final JavaSemanticServices javaSemanticServices;
|
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||||
private final JavaNamespaceResolver javaNamespaceResolver;
|
private final JavaNamespaceResolver javaNamespaceResolver;
|
||||||
|
private final JavaSemanticServices javaSemanticServices;
|
||||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
private final JavaSupertypeResolver javaSupertypeResolver;
|
||||||
private final JavaConstructorResolver javaConstructorResolver;
|
private final JavaConstructorResolver javaConstructorResolver;
|
||||||
private final JavaInnerClassResolver javaInnerClassResolver;
|
private final JavaInnerClassResolver javaInnerClassResolver;
|
||||||
@@ -76,10 +76,10 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||||
this.javaSignatureResolver = new JavaSignatureResolver();
|
this.javaSignatureResolver = new JavaSignatureResolver();
|
||||||
this.javaSemanticServices = new JavaSemanticServices();
|
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
||||||
this.javaNamespaceResolver = new JavaNamespaceResolver();
|
this.javaNamespaceResolver = new JavaNamespaceResolver();
|
||||||
|
this.javaSemanticServices = new JavaSemanticServices();
|
||||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
||||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
this.javaConstructorResolver = new JavaConstructorResolver();
|
||||||
this.javaInnerClassResolver = new JavaInnerClassResolver();
|
this.javaInnerClassResolver = new JavaInnerClassResolver();
|
||||||
@@ -120,11 +120,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
|
|
||||||
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
||||||
|
|
||||||
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
javaSignatureResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
|
|
||||||
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaSemanticServices.setPsiClassFinder(psiClassFinder);
|
|
||||||
javaSemanticServices.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
||||||
@@ -138,6 +134,9 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
|
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
|
||||||
javaNamespaceResolver.setTrace(bindingTrace);
|
javaNamespaceResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
|
||||||
|
javaSemanticServices.setPsiClassFinder(psiClassFinder);
|
||||||
|
|
||||||
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
||||||
javaSupertypeResolver.setTrace(bindingTrace);
|
javaSupertypeResolver.setTrace(bindingTrace);
|
||||||
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
@@ -149,8 +148,8 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
||||||
|
|
||||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||||
javaPropertyResolver.setSemanticServices(javaSemanticServices);
|
|
||||||
javaPropertyResolver.setTrace(bindingTrace);
|
javaPropertyResolver.setTrace(bindingTrace);
|
||||||
|
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
|
|
||||||
psiClassFinder.initialize();
|
psiClassFinder.initialize();
|
||||||
|
|
||||||
|
|||||||
+7
-8
@@ -48,12 +48,12 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
|
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserializer;
|
import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserializer;
|
||||||
@@ -100,12 +100,12 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
private final JavaSemanticServices javaSemanticServices;
|
private final JavaSemanticServices javaSemanticServices;
|
||||||
private final JavaTypeTransformer javaTypeTransformer;
|
|
||||||
private final JavaClassResolver javaClassResolver;
|
private final JavaClassResolver javaClassResolver;
|
||||||
private final JavaAnnotationResolver javaAnnotationResolver;
|
private final JavaAnnotationResolver javaAnnotationResolver;
|
||||||
private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
|
private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
|
||||||
private final JavaFunctionResolver javaFunctionResolver;
|
private final JavaFunctionResolver javaFunctionResolver;
|
||||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
private final JavaValueParameterResolver javaValueParameterResolver;
|
||||||
|
private final JavaTypeTransformer javaTypeTransformer;
|
||||||
private final JavaSignatureResolver javaSignatureResolver;
|
private final JavaSignatureResolver javaSignatureResolver;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||||
@@ -153,12 +153,12 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
this.javaSemanticServices = new JavaSemanticServices();
|
this.javaSemanticServices = new JavaSemanticServices();
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
|
||||||
this.javaClassResolver = new JavaClassResolver();
|
this.javaClassResolver = new JavaClassResolver();
|
||||||
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
||||||
this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
|
this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
|
||||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
this.javaFunctionResolver = new JavaFunctionResolver();
|
||||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
||||||
|
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||||
this.javaSignatureResolver = new JavaSignatureResolver();
|
this.javaSignatureResolver = new JavaSignatureResolver();
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
||||||
@@ -283,9 +283,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
|
|
||||||
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
|
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
|
||||||
javaSemanticServices.setPsiClassFinder(psiClassFinder);
|
javaSemanticServices.setPsiClassFinder(psiClassFinder);
|
||||||
javaSemanticServices.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
|
||||||
|
|
||||||
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||||
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
||||||
@@ -311,7 +308,9 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
|
|
||||||
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
|
|
||||||
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
||||||
|
|
||||||
|
javaSignatureResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
||||||
@@ -336,8 +335,8 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
||||||
|
|
||||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||||
javaPropertyResolver.setSemanticServices(javaSemanticServices);
|
|
||||||
javaPropertyResolver.setTrace(bindingTrace);
|
javaPropertyResolver.setTrace(bindingTrace);
|
||||||
|
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||||
|
|
||||||
psiClassFinder.initialize();
|
psiClassFinder.initialize();
|
||||||
|
|
||||||
|
|||||||
-12
@@ -21,18 +21,11 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
public class JavaSemanticServices {
|
public class JavaSemanticServices {
|
||||||
@NotNull
|
|
||||||
private JavaTypeTransformer typeTransformer;
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JavaDescriptorResolver descriptorResolver;
|
private JavaDescriptorResolver descriptorResolver;
|
||||||
@NotNull
|
@NotNull
|
||||||
private PsiClassFinder psiClassFinder;
|
private PsiClassFinder psiClassFinder;
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setTypeTransformer(@NotNull JavaTypeTransformer typeTransformer) {
|
|
||||||
this.typeTransformer = typeTransformer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setDescriptorResolver(@NotNull JavaDescriptorResolver descriptorResolver) {
|
public void setDescriptorResolver(@NotNull JavaDescriptorResolver descriptorResolver) {
|
||||||
this.descriptorResolver = descriptorResolver;
|
this.descriptorResolver = descriptorResolver;
|
||||||
@@ -43,11 +36,6 @@ public class JavaSemanticServices {
|
|||||||
this.psiClassFinder = psiClassFinder;
|
this.psiClassFinder = psiClassFinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JavaTypeTransformer getTypeTransformer() {
|
|
||||||
return typeTransformer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public JavaDescriptorResolver getDescriptorResolver() {
|
public JavaDescriptorResolver getDescriptorResolver() {
|
||||||
return descriptorResolver;
|
return descriptorResolver;
|
||||||
|
|||||||
+5
-10
@@ -45,8 +45,7 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public final class JavaPropertyResolver {
|
public final class JavaPropertyResolver {
|
||||||
|
private JavaTypeTransformer typeTransformer;
|
||||||
private JavaSemanticServices semanticServices;
|
|
||||||
private BindingTrace trace;
|
private BindingTrace trace;
|
||||||
private JavaAnnotationResolver annotationResolver;
|
private JavaAnnotationResolver annotationResolver;
|
||||||
|
|
||||||
@@ -54,8 +53,8 @@ public final class JavaPropertyResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setSemanticServices(JavaSemanticServices semanticServices) {
|
public void setTypeTransformer(@NotNull JavaTypeTransformer javaTypeTransformer) {
|
||||||
this.semanticServices = semanticServices;
|
this.typeTransformer = javaTypeTransformer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -247,12 +246,8 @@ public final class JavaPropertyResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JetType getPropertyType(
|
private JetType getPropertyType(@NotNull PsiFieldWrapper field, @NotNull TypeVariableResolver typeVariableResolver) {
|
||||||
PsiFieldWrapper field,
|
JetType propertyType = typeTransformer.transformToType(field.getType(), typeVariableResolver);
|
||||||
TypeVariableResolver typeVariableResolverForPropertyInternals
|
|
||||||
) {
|
|
||||||
JetType propertyType = semanticServices.getTypeTransformer().transformToType(
|
|
||||||
field.getType(), typeVariableResolverForPropertyInternals);
|
|
||||||
|
|
||||||
boolean hasNotNullAnnotation = JavaAnnotationResolver.findAnnotationWithExternal(
|
boolean hasNotNullAnnotation = JavaAnnotationResolver.findAnnotationWithExternal(
|
||||||
field.getPsiField(),
|
field.getPsiField(),
|
||||||
|
|||||||
+7
-13
@@ -27,11 +27,12 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
|
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.TypeUsage;
|
import org.jetbrains.jet.lang.resolve.java.TypeUsage;
|
||||||
import org.jetbrains.jet.lang.resolve.java.TypeVariableResolver;
|
import org.jetbrains.jet.lang.resolve.java.TypeVariableResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import org.jetbrains.jet.lang.types.Variance;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
|
||||||
@@ -40,13 +41,12 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class JavaSignatureResolver {
|
public final class JavaSignatureResolver {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JavaSemanticServices semanticServices;
|
private JavaTypeTransformer typeTransformer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setJavaSemanticServices(@NotNull JavaSemanticServices javaSemanticServices) {
|
public void setTypeTransformer(@NotNull JavaTypeTransformer javaTypeTransformer) {
|
||||||
this.semanticServices = javaSemanticServices;
|
this.typeTransformer = javaTypeTransformer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TypeParameterDescriptorInitialization {
|
public static class TypeParameterDescriptorInitialization {
|
||||||
@@ -107,16 +107,10 @@ public final class JavaSignatureResolver {
|
|||||||
if (referencedTypes.length == 0) {
|
if (referencedTypes.length == 0) {
|
||||||
typeParameterDescriptor.addUpperBound(KotlinBuiltIns.getInstance().getNullableAnyType());
|
typeParameterDescriptor.addUpperBound(KotlinBuiltIns.getInstance().getNullableAnyType());
|
||||||
}
|
}
|
||||||
else if (referencedTypes.length == 1) {
|
|
||||||
typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer()
|
|
||||||
.transformToType(referencedTypes[0], TypeUsage.UPPER_BOUND,
|
|
||||||
typeVariableByPsiResolver));
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
for (PsiClassType referencedType : referencedTypes) {
|
for (PsiClassType referencedType : referencedTypes) {
|
||||||
typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer()
|
JetType transformedType = typeTransformer.transformToType(referencedType, TypeUsage.UPPER_BOUND, typeVariableByPsiResolver);
|
||||||
.transformToType(referencedType, TypeUsage.UPPER_BOUND,
|
typeParameterDescriptor.addUpperBound(transformedType);
|
||||||
typeVariableByPsiResolver));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
typeParameterDescriptor.setInitialized();
|
typeParameterDescriptor.setInitialized();
|
||||||
|
|||||||
Reference in New Issue
Block a user