Move some static fields from JavaDescriptorResolver

This commit is contained in:
Pavel V. Talanov
2012-10-08 13:28:58 +04:00
parent 0b474af1f5
commit ca4ac25819
6 changed files with 10 additions and 9 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.resolve.java.kt.PsiAnnotationWithFlags;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper;
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.FqName;
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.JetType;
@@ -37,6 +38,8 @@ import java.util.List;
* @author Pavel Talanov * @author Pavel Talanov
*/ */
public final class DescriptorResolverUtils { public final class DescriptorResolverUtils {
public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object");
private DescriptorResolverUtils() { private DescriptorResolverUtils() {
} }
@@ -48,12 +48,8 @@ import java.util.Set;
*/ */
public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver { public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver {
public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object");
public static final Name JAVA_ROOT = Name.special("<java_root>"); public static final Name JAVA_ROOT = Name.special("<java_root>");
public static final ModuleDescriptor FAKE_ROOT_MODULE = new ModuleDescriptor(JAVA_ROOT);
public static Visibility PACKAGE_VISIBILITY = new Visibility("package", false) { public static Visibility PACKAGE_VISIBILITY = new Visibility("package", false) {
@Override @Override
protected boolean isVisible(@NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from) { protected boolean isVisible(@NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from) {
@@ -58,7 +58,7 @@ public class JavaDescriptorSignatureResolver {
private static boolean isJavaLangObject(@NotNull JetType type) { private static boolean isJavaLangObject(@NotNull JetType type) {
ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor(); ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor();
return classifierDescriptor instanceof ClassDescriptor && return classifierDescriptor instanceof ClassDescriptor &&
DescriptorUtils.getFQName(classifierDescriptor).equalsTo(JavaDescriptorResolver.OBJECT_FQ_NAME); DescriptorUtils.getFQName(classifierDescriptor).equalsTo(DescriptorResolverUtils.OBJECT_FQ_NAME);
} }
private enum TypeParameterDescriptorOrigin { private enum TypeParameterDescriptorOrigin {
@@ -371,7 +371,7 @@ public final class ClassResolver {
if (result.isEmpty()) { if (result.isEmpty()) {
if (classData.isKotlin() if (classData.isKotlin()
|| JavaDescriptorResolver.OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName()) || DescriptorResolverUtils.OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName())
// TODO: annotations // TODO: annotations
|| classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) { || classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {
result.add(JetStandardClasses.getAnyType()); result.add(JetStandardClasses.getAnyType());
@@ -449,7 +449,7 @@ public final class ClassResolver {
@Nullable @Nullable
private ClassDescriptor resolveJavaLangObject() { private ClassDescriptor resolveJavaLangObject() {
ClassDescriptor clazz = resolveClass(JavaDescriptorResolver.OBJECT_FQ_NAME, DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN); ClassDescriptor clazz = resolveClass(DescriptorResolverUtils.OBJECT_FQ_NAME, DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
if (clazz == null) { if (clazz == null) {
// TODO: warning // TODO: warning
} }
@@ -71,7 +71,7 @@ public final class FunctionResolver {
// TODO: unless maybe class explicitly extends Object // TODO: unless maybe class explicitly extends Object
assert containingClass != null; assert containingClass != null;
String ownerClassName = containingClass.getQualifiedName(); String ownerClassName = containingClass.getQualifiedName();
if (JavaDescriptorResolver.OBJECT_FQ_NAME.getFqName().equals(ownerClassName)) { if (DescriptorResolverUtils.OBJECT_FQ_NAME.getFqName().equals(ownerClassName)) {
return null; return null;
} }
} }
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiPackage; import com.intellij.psi.PsiPackage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptorParent; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptorParent;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
@@ -36,6 +37,7 @@ import java.util.Map;
public final class NamespaceResolver { public final class NamespaceResolver {
public static final ModuleDescriptor FAKE_ROOT_MODULE = new ModuleDescriptor(JavaDescriptorResolver.JAVA_ROOT);
private final JavaDescriptorResolver javaDescriptorResolver; private final JavaDescriptorResolver javaDescriptorResolver;
private final Map<FqName, JavaDescriptorResolveData.ResolverNamespaceData> namespaceDescriptorCacheByFqn = Maps.newHashMap(); private final Map<FqName, JavaDescriptorResolveData.ResolverNamespaceData> namespaceDescriptorCacheByFqn = Maps.newHashMap();
@@ -98,7 +100,7 @@ public final class NamespaceResolver {
private NamespaceDescriptorParent resolveParentNamespace(FqName fqName) { private NamespaceDescriptorParent resolveParentNamespace(FqName fqName) {
if (fqName.isRoot()) { if (fqName.isRoot()) {
return JavaDescriptorResolver.FAKE_ROOT_MODULE; return FAKE_ROOT_MODULE;
} }
else { else {
return resolveNamespace(fqName.parent(), DescriptorSearchRule.INCLUDE_KOTLIN); return resolveNamespace(fqName.parent(), DescriptorSearchRule.INCLUDE_KOTLIN);