diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinClassMap.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinClassMap.java index f2e28693b20..bf330524540 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinClassMap.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinClassMap.java @@ -80,9 +80,9 @@ public class JavaToKotlinClassMap extends JavaToKotlinClassMapBuilder implements } @Nullable - public ClassDescriptor mapKotlinClass(@NotNull FqName fqName, @NotNull JavaTypeTransformer.TypeUsage typeUsage) { - if (typeUsage == JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_COVARIANT - || typeUsage == JavaTypeTransformer.TypeUsage.SUPERTYPE) { + public ClassDescriptor mapKotlinClass(@NotNull FqName fqName, @NotNull TypeUsage typeUsage) { + if (typeUsage == TypeUsage.MEMBER_SIGNATURE_COVARIANT + || typeUsage == TypeUsage.SUPERTYPE) { ClassDescriptor descriptor = classDescriptorMapForCovariantPositions.get(fqName); if (descriptor != null) { return descriptor; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java index 27ddb5b3fd0..9609d19d1a1 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java @@ -35,7 +35,7 @@ import java.util.EnumSet; import java.util.List; import java.util.Set; -import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.*; +import static org.jetbrains.jet.lang.resolve.java.TypeUsage.*; /** * @author abreslav @@ -255,19 +255,4 @@ public class JavaTypeTransformer { }); return result; } - - /** - * We convert Java types differently, depending on where they occur in the Java code - * This enum encodes the kinds of occurrences - */ - public enum TypeUsage { - // Type T occurs somewhere as a generic argument, e.g.: List or List - TYPE_ARGUMENT, - UPPER_BOUND, - MEMBER_SIGNATURE_COVARIANT, - MEMBER_SIGNATURE_CONTRAVARIANT, - MEMBER_SIGNATURE_INVARIANT, - SUPERTYPE, - SUPERTYPE_ARGUMENT - } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java index 8989fc143f3..c701f740c11 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java @@ -109,7 +109,7 @@ public abstract class JetTypeJetSignatureReader extends JetSignatureExceptionsAd private ClassDescriptor resolveClassDescriptorByFqName(FqName ourName, boolean forceReal) { if (!forceReal) { ClassDescriptor mappedDescriptor = JavaToKotlinClassMap.getInstance(). - mapKotlinClass(ourName, JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_INVARIANT); + mapKotlinClass(ourName, TypeUsage.MEMBER_SIGNATURE_INVARIANT); if (mappedDescriptor != null) { return mappedDescriptor; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/TypeUsage.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/TypeUsage.java new file mode 100644 index 00000000000..5f64f7433f6 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/TypeUsage.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java; + +/** + * We convert Java types differently, depending on where they occur in the Java code + * This enum encodes the kinds of occurrences + */ +public enum TypeUsage { + // Type T occurs somewhere as a generic argument, e.g.: List or List + TYPE_ARGUMENT, + UPPER_BOUND, + MEMBER_SIGNATURE_COVARIANT, + MEMBER_SIGNATURE_CONTRAVARIANT, + MEMBER_SIGNATURE_INVARIANT, + SUPERTYPE, + SUPERTYPE_ARGUMENT +} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java index d9463e67ea7..7ebbd9b2069 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java @@ -40,8 +40,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT; -import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.UPPER_BOUND; +import static org.jetbrains.jet.lang.resolve.java.TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT; +import static org.jetbrains.jet.lang.resolve.java.TypeUsage.UPPER_BOUND; /** * @author Evgeny Gerashchenko diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/ElementAlternativeSignatureData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/ElementAlternativeSignatureData.java index 8367749fea7..0f5dd4f0dbb 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/ElementAlternativeSignatureData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/ElementAlternativeSignatureData.java @@ -32,7 +32,7 @@ import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.List; import java.util.Map; -import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_COVARIANT; +import static org.jetbrains.jet.lang.resolve.java.TypeUsage.MEMBER_SIGNATURE_COVARIANT; public abstract class ElementAlternativeSignatureData { private String error; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java index da59349d597..11b97344ffd 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java @@ -25,10 +25,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptorImpl; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.lang.resolve.java.JavaToKotlinClassMap; -import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; -import org.jetbrains.jet.lang.resolve.java.JvmClassName; -import org.jetbrains.jet.lang.resolve.java.KotlinToJavaTypesMap; +import org.jetbrains.jet.lang.resolve.java.*; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; @@ -36,18 +33,18 @@ import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.*; -import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.*; +import static org.jetbrains.jet.lang.resolve.java.TypeUsage.*; class TypeTransformingVisitor extends JetVisitor { private final JetType originalType; private final Map originalToAltTypeParameters; - private final JavaTypeTransformer.TypeUsage typeUsage; + private final TypeUsage typeUsage; private TypeTransformingVisitor( JetType originalType, Map originalToAltTypeParameters, - JavaTypeTransformer.TypeUsage typeUsage + TypeUsage typeUsage ) { this.originalType = originalType; this.typeUsage = typeUsage; @@ -59,7 +56,7 @@ class TypeTransformingVisitor extends JetVisitor { @NotNull JetTypeElement alternativeTypeElement, @NotNull JetType originalType, @NotNull Map originalToAltTypeParameters, - @NotNull JavaTypeTransformer.TypeUsage typeUsage + @NotNull TypeUsage typeUsage ) { JetType computedType = alternativeTypeElement.accept(new TypeTransformingVisitor(originalType, originalToAltTypeParameters, typeUsage), null); assert (computedType != null); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java index 106db7a7fff..f31ad28d0b6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java @@ -314,7 +314,7 @@ public final class JavaFunctionResolver { } else { transformedType = typeTransformer.transformToType( - returnType, JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_COVARIANT, typeVariableResolver); + returnType, TypeUsage.MEMBER_SIGNATURE_COVARIANT, typeVariableResolver); } if (JavaAnnotationResolver.findAnnotationWithExternal(method.getPsiMethod(), JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) != diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSignatureResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSignatureResolver.java index 3f0bcfe068c..64e7cbf6f67 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSignatureResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSignatureResolver.java @@ -292,11 +292,11 @@ public final class JavaSignatureResolver { typeParameterDescriptor.addUpperBound(KotlinBuiltIns.getInstance().getNullableAnyType()); } else if (referencedTypes.length == 1) { - typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer().transformToType(referencedTypes[0], JavaTypeTransformer.TypeUsage.UPPER_BOUND, typeVariableByPsiResolver)); + typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer().transformToType(referencedTypes[0], TypeUsage.UPPER_BOUND, typeVariableByPsiResolver)); } else { for (PsiClassType referencedType : referencedTypes) { - typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer().transformToType(referencedType, JavaTypeTransformer.TypeUsage.UPPER_BOUND, typeVariableByPsiResolver)); + typeParameterDescriptor.addUpperBound(semanticServices.getTypeTransformer().transformToType(referencedType, TypeUsage.UPPER_BOUND, typeVariableByPsiResolver)); } } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java index 7540e49ba2d..3dd4c27d7f4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java @@ -187,7 +187,7 @@ public final class JavaSupertypeResolver { } JetType transform = typeTransformer - .transformToType(type, JavaTypeTransformer.TypeUsage.SUPERTYPE, typeVariableResolver); + .transformToType(type, TypeUsage.SUPERTYPE, typeVariableResolver); if (ErrorUtils.isErrorType(transform)) { continue; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java index b427f0546d3..dfedafc3044 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java @@ -24,10 +24,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptorImpl; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; -import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; -import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; -import org.jetbrains.jet.lang.resolve.java.JvmAbi; -import org.jetbrains.jet.lang.resolve.java.TypeVariableResolver; +import org.jetbrains.jet.lang.resolve.java.*; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiParameterWrapper; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.JetType; @@ -74,7 +71,7 @@ public final class JavaValueParameterResolver { outType = getTypeTransformer().transformToType(typeFromAnnotation, typeVariableResolver); } else { - outType = getTypeTransformer().transformToType(psiType, JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT, + outType = getTypeTransformer().transformToType(psiType, TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT, typeVariableResolver); }