Rename namespace class to {package.name}Package

Conflicts:

	compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JavaElementFinder.java
This commit is contained in:
Natalia.Ukhorskaya
2013-01-11 12:00:27 +04:00
parent 0f2fa6bade
commit 47abdcf565
113 changed files with 436 additions and 193 deletions
@@ -32,7 +32,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.NamespaceCodegen;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.java.JavaPsiFacadeKotlinHacks;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
@@ -87,8 +87,9 @@ public class JavaElementFinder extends PsiElementFinder implements JavaPsiFacade
findClassesAndObjects(qualifiedName, scope, answer);
if (JvmAbi.PACKAGE_CLASS.equals(qualifiedName.shortName().getName())) {
findPackageClass(qualifiedName.parent(), scope, answer);
FqName packageFQN = qualifiedName.parent();
if (PackageClassUtils.getPackageClassFqName(packageFQN).equals(qualifiedName)) {
findPackageClass(packageFQN, scope, answer);
}
return answer.toArray(new PsiClass[answer.size()]);
@@ -141,7 +142,7 @@ public class JavaElementFinder extends PsiElementFinder implements JavaPsiFacade
Collection<JetClassOrObject> declarations = lightClassGenerationSupport.findClassOrObjectDeclarationsInPackage(packageFQN, scope);
Set<String> answer = Sets.newHashSet();
answer.add(JvmAbi.PACKAGE_CLASS);
answer.add(PackageClassUtils.getPackageClassName(packageFQN));
for (JetClassOrObject declaration : declarations) {
String name = declaration.getName();
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2012 JetBrains s.r.o.
* Copyright 2010-2013 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.
@@ -30,9 +30,8 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.java.JetJavaMirrorMarker;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import javax.swing.*;
import java.util.Collection;
@@ -55,7 +54,7 @@ public class KotlinLightClassForPackage extends KotlinLightClassForPackageBase i
private KotlinLightClassForPackage(@NotNull PsiManager manager, @NotNull FqName packageFqName, @NotNull Collection<JetFile> files) {
super(manager);
this.packageFqName = packageFqName;
this.packageClassFqName = packageFqName.child(Name.identifier(JvmAbi.PACKAGE_CLASS));
this.packageClassFqName = PackageClassUtils.getPackageClassFqName(packageFqName);
assert !files.isEmpty() : "No files for package " + packageFqName;
this.files = Sets.newHashSet(files); // needed for hashCode
this.hashCode = computeHashCode();
@@ -28,7 +28,11 @@ import org.jetbrains.asm4.ClassVisitor;
import org.jetbrains.asm4.FieldVisitor;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.jet.codegen.ClassBuilder;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamedDeclaration;
import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import java.util.List;
@@ -66,13 +70,20 @@ public class StubClassBuilder extends ClassBuilder {
v = new StubBuildingVisitor<Object>(null, EMPTY_STRATEGY, parent, access);
super.defineClass(origin, version, access, name, signature, superName, interfaces);
if (name.equals(JvmAbi.PACKAGE_CLASS) || name.endsWith("/" + JvmAbi.PACKAGE_CLASS)) {
isNamespace = true;
if (origin instanceof JetFile) {
FqName packageName = JetPsiUtil.getFQName((JetFile) origin);
String packageClassName = PackageClassUtils.getPackageClassName(packageName);
if (name.equals(packageClassName) || name.endsWith("/" + packageClassName)) {
isNamespace = true;
}
}
else {
if (!isNamespace) {
parentStack.push(v.getResult());
}
((StubBase) v.getResult()).putUserData(ClsWrapperStubPsiFactory.ORIGIN_ELEMENT, origin);
}