diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index 5186b105c45..d8d4d0d5c82 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -77,7 +77,6 @@ public class InjectorForJavaDescriptorResolver { javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); javaTypeTransformer.setResolver(javaDescriptorResolver); - javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver); javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices); javaBridgeConfiguration.init(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java index be5df75673f..23faecf0daa 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java @@ -75,7 +75,6 @@ public class InjectorForJavaSemanticServices { javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); javaTypeTransformer.setResolver(javaDescriptorResolver); - javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver); javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices); javaBridgeConfiguration.init(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index 47f03877a46..20aece4ab72 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -214,7 +214,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); javaTypeTransformer.setResolver(javaDescriptorResolver); - javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver); javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices); moduleConfiguration.init(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorSignatureResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorSignatureResolver.java index fee20343f3b..be657a1a28f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorSignatureResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorSignatureResolver.java @@ -47,23 +47,14 @@ import java.util.List; */ public class JavaDescriptorSignatureResolver { - @NotNull - private JavaDescriptorResolver javaDescriptorResolver; @NotNull private JavaSemanticServices semanticServices; - @Inject - public void setJavaDescriptorResolver(@NotNull JavaDescriptorResolver javaDescriptorResolver) { - this.javaDescriptorResolver = javaDescriptorResolver; - } - @Inject public void setJavaSemanticServices(@NotNull JavaSemanticServices javaSemanticServices) { this.semanticServices = javaSemanticServices; } - - private enum TypeParameterDescriptorOrigin { JAVA, KOTLIN, @@ -77,24 +68,22 @@ public class JavaDescriptorSignatureResolver { final PsiTypeParameter psiTypeParameter; @Nullable private final List upperBoundsForKotlin; - @Nullable - private final List lowerBoundsForKotlin; private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter) { this.origin = TypeParameterDescriptorOrigin.JAVA; this.descriptor = descriptor; this.psiTypeParameter = psiTypeParameter; this.upperBoundsForKotlin = null; - this.lowerBoundsForKotlin = null; } - private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter, - List upperBoundsForKotlin, List lowerBoundsForKotlin) { + private TypeParameterDescriptorInitialization( + @NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter, + List upperBoundsForKotlin + ) { this.origin = TypeParameterDescriptorOrigin.KOTLIN; this.descriptor = descriptor; this.psiTypeParameter = psiTypeParameter; this.upperBoundsForKotlin = upperBoundsForKotlin; - this.lowerBoundsForKotlin = lowerBoundsForKotlin; } } @@ -137,7 +126,6 @@ public class JavaDescriptorSignatureResolver { } List upperBounds = new ArrayList(); - List lowerBounds = new ArrayList(); @Override public JetSignatureVisitor visitClassBound() { @@ -165,7 +153,7 @@ public class JavaDescriptorSignatureResolver { @Override public void visitFormalTypeParameterEnd() { PsiTypeParameter psiTypeParameter = getPsiTypeParameterByName(psiOwner, name); - TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds, lowerBounds); + TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds); done(typeParameterDescriptorInitialization); } @@ -221,7 +209,7 @@ public class JavaDescriptorSignatureResolver { } /** - * @see #resolveMethodTypeParametersFromJetSignature(String, com.intellij.psi.PsiMethod, org.jetbrains.jet.lang.descriptors.DeclarationDescriptor) + * @see #resolveMethodTypeParametersFromJetSignature(String, PsiMethod, DeclarationDescriptor) */ private List resolveClassTypeParametersFromJetSignature(String jetSignature, final PsiClass clazz, final ClassDescriptor classDescriptor) { @@ -244,7 +232,10 @@ public class JavaDescriptorSignatureResolver { } - private List makeUninitializedTypeParameters(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter[] typeParameters) { + private static List makeUninitializedTypeParameters( + @NotNull DeclarationDescriptor containingDeclaration, + @NotNull PsiTypeParameter[] typeParameters + ) { List result = Lists.newArrayList(); for (PsiTypeParameter typeParameter : typeParameters) { TypeParameterDescriptorInitialization typeParameterDescriptor = makeUninitializedTypeParameter(containingDeclaration, typeParameter); @@ -254,7 +245,10 @@ public class JavaDescriptorSignatureResolver { } @NotNull - private TypeParameterDescriptorInitialization makeUninitializedTypeParameter(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter psiTypeParameter) { + private static TypeParameterDescriptorInitialization makeUninitializedTypeParameter( + @NotNull DeclarationDescriptor containingDeclaration, + @NotNull PsiTypeParameter psiTypeParameter + ) { TypeParameterDescriptorImpl typeParameterDescriptor = TypeParameterDescriptorImpl.createForFurtherModification( containingDeclaration, Collections.emptyList(), // TODO @@ -269,12 +263,13 @@ public class JavaDescriptorSignatureResolver { private void initializeTypeParameter(TypeParameterDescriptorInitialization typeParameter, TypeVariableResolver typeVariableByPsiResolver) { TypeParameterDescriptorImpl typeParameterDescriptor = typeParameter.descriptor; if (typeParameter.origin == TypeParameterDescriptorOrigin.KOTLIN) { - List upperBounds = typeParameter.upperBoundsForKotlin; - if (upperBounds.size() == 0){ + final List upperBoundsForKotlin = typeParameter.upperBoundsForKotlin; + assert upperBoundsForKotlin != null; + if (upperBoundsForKotlin.size() == 0){ typeParameterDescriptor.addUpperBound(JetStandardClasses.getNullableAnyType()); } else { - for (JetType upperBound : typeParameter.upperBoundsForKotlin) { + for (JetType upperBound : upperBoundsForKotlin) { typeParameterDescriptor.addUpperBound(upperBound); } } @@ -299,7 +294,7 @@ public class JavaDescriptorSignatureResolver { } void initializeTypeParameters(List typeParametersInitialization, @NotNull DeclarationDescriptor typeParametersOwner, @NotNull String context) { - List prevTypeParameters = new ArrayList(); + List prevTypeParameters = Lists.newArrayList(); List typeParameters = Lists.newArrayList(); for (TypeParameterDescriptorInitialization typeParameterDescriptor : typeParametersInitialization) { @@ -331,15 +326,18 @@ public class JavaDescriptorSignatureResolver { @NotNull DeclarationDescriptor functionDescriptor) { List typeParametersIntialization; + final PsiMethod psiMethod = method.getPsiMethod(); if (method.getJetMethod().typeParameters().length() > 0) { typeParametersIntialization = resolveMethodTypeParametersFromJetSignature( - method.getJetMethod().typeParameters(), method.getPsiMethod(), functionDescriptor); + method.getJetMethod().typeParameters(), psiMethod, functionDescriptor); } else { - typeParametersIntialization = makeUninitializedTypeParameters(functionDescriptor, method.getPsiMethod().getTypeParameters()); + typeParametersIntialization = makeUninitializedTypeParameters(functionDescriptor, psiMethod.getTypeParameters()); } - String context = "method " + method.getName() + " in class " + method.getPsiMethod().getContainingClass().getQualifiedName(); + final PsiClass psiMethodContainingClass = psiMethod.getContainingClass(); + assert psiMethodContainingClass != null; + String context = "method " + method.getName() + " in class " + psiMethodContainingClass.getQualifiedName(); initializeTypeParameters(typeParametersIntialization, functionDescriptor, context); List typeParameters = Lists.newArrayListWithCapacity(typeParametersIntialization.size()); @@ -352,18 +350,17 @@ public class JavaDescriptorSignatureResolver { } /** - * @see #resolveClassTypeParametersFromJetSignature(String, com.intellij.psi.PsiClass, org.jetbrains.jet.lang.descriptors.ClassDescriptor) + * @see #resolveClassTypeParametersFromJetSignature(String, PsiClass, ClassDescriptor) */ private List resolveMethodTypeParametersFromJetSignature(String jetSignature, final PsiMethod method, final DeclarationDescriptor functionDescriptor) { - String context = "method " + method.getName() + " in class " + method.getContainingClass().getQualifiedName(); + final PsiClass methodContainingClass = method.getContainingClass(); + assert methodContainingClass != null; + String context = "method " + method.getName() + " in class " + methodContainingClass.getQualifiedName(); JetSignatureTypeParametersVisitor jetSignatureTypeParametersVisitor = new JetSignatureTypeParametersVisitor(functionDescriptor, method, context); new JetSignatureReader(jetSignature).acceptFormalTypeParametersOnly(jetSignatureTypeParametersVisitor); return jetSignatureTypeParametersVisitor.r; } - - - }