Use instance methods instead of JetPsiUtil for getting fq names
Remove unnecessary usages of JetFile#getPackageDirective where only FqName is needed Make JetFile#getPackageFqName not nullable to avoid confusion on call sites Remove getPackageName usages Move getFqName(JetNamedDeclaration) to a separate util class
This commit is contained in:
@@ -21,7 +21,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.psi.JetScript;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
@@ -50,7 +49,7 @@ public class KotlinCodegenFacade {
|
||||
MultiMap<FqName, JetFile> packageFqNameToFiles = new MultiMap<FqName, JetFile>();
|
||||
for (JetFile file : state.getFiles()) {
|
||||
if (file == null) throw new IllegalArgumentException("A null file given for compilation");
|
||||
packageFqNameToFiles.putValue(JetPsiUtil.getFQName(file), file);
|
||||
packageFqNameToFiles.putValue(file.getPackageFqName(), file);
|
||||
}
|
||||
|
||||
for (Map.Entry<FqName, Collection<JetFile>> entry : packageFqNameToFiles.entrySet()) {
|
||||
|
||||
@@ -247,14 +247,14 @@ public class PackageCodegen extends GenerationStateAware {
|
||||
private static void checkAllFilesHaveSamePackage(Collection<JetFile> packageFiles) {
|
||||
FqName commonFqName = null;
|
||||
for (JetFile file : packageFiles) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
FqName fqName = file.getPackageFqName();
|
||||
if (commonFqName != null) {
|
||||
if (!commonFqName.equals(fqName)) {
|
||||
throw new IllegalArgumentException("All files should have same package name");
|
||||
}
|
||||
}
|
||||
else {
|
||||
commonFqName = JetPsiUtil.getFQName(file);
|
||||
commonFqName = file.getPackageFqName();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -283,7 +283,7 @@ public class PackageCodegen extends GenerationStateAware {
|
||||
|
||||
@NotNull
|
||||
public static String getPackagePartInternalName(@NotNull JetFile file) {
|
||||
FqName packageFqName = JetPsiUtil.getFQName(file);
|
||||
FqName packageFqName = file.getPackageFqName();
|
||||
return getPackagePartType(getPackageClassFqName(packageFqName), file.getVirtualFile()).getInternalName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class PackagePartCodegen extends MemberCodegen {
|
||||
this.packagePartName = packagePartName;
|
||||
this.context = context;
|
||||
descriptor = state.getBindingContext().get(BindingContext.FILE_TO_PACKAGE_FRAGMENT, jetFile);
|
||||
assert descriptor != null : "No package fragment found for jetFile " + jetFile + " declared package: " + jetFile.getPackageName();
|
||||
assert descriptor != null : "No package fragment found for jetFile " + jetFile + " declared package: " + jetFile.getPackageFqName();
|
||||
}
|
||||
|
||||
public void generate() {
|
||||
|
||||
@@ -26,7 +26,6 @@ import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
@@ -136,7 +135,7 @@ public class SamWrapperCodegen extends ParentCodegenAwareImpl {
|
||||
}
|
||||
|
||||
private String getWrapperName(@NotNull JetFile containingFile) {
|
||||
FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(JetPsiUtil.getFQName(containingFile));
|
||||
FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(containingFile.getPackageFqName());
|
||||
String packageInternalName = JvmClassName.byFqNameWithoutInnerClasses(packageClassFqName).getInternalName();
|
||||
return packageInternalName + "$sam$" + samInterface.getName().asString() + "$" +
|
||||
Integer.toHexString(CodegenUtil.getPathHashCode(containingFile.getVirtualFile()) * 31 + DescriptorUtils.getFqNameSafe(
|
||||
|
||||
+1
-1
@@ -148,7 +148,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
nameStack.push(asmTypeForScriptPsi(bindingContext, file.getScript()).getInternalName());
|
||||
}
|
||||
else {
|
||||
nameStack.push(JvmClassName.byFqNameWithoutInnerClasses(JetPsiUtil.getFQName(file)).getInternalName());
|
||||
nameStack.push(JvmClassName.byFqNameWithoutInnerClasses(file.getPackageFqName()).getInternalName());
|
||||
}
|
||||
file.acceptChildren(this);
|
||||
nameStack.pop();
|
||||
|
||||
@@ -237,7 +237,7 @@ public class CodegenBinding {
|
||||
HashSet<FqName> names = new HashSet<FqName>();
|
||||
for (JetFile file : files) {
|
||||
if (!file.isScript()) {
|
||||
names.add(JetPsiUtil.getFQName(file));
|
||||
names.add(file.getPackageFqName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,18 +80,15 @@ public final class PsiCodegenPredictor {
|
||||
}
|
||||
}
|
||||
else {
|
||||
String packageName = ((JetFile) declaration.getContainingFile()).getPackageName();
|
||||
if (packageName == null) {
|
||||
return null;
|
||||
}
|
||||
FqName packageFqName = ((JetFile) declaration.getContainingFile()).getPackageFqName();
|
||||
|
||||
if (declaration instanceof JetNamedFunction) {
|
||||
JvmClassName packageClass = JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(new FqName(packageName)));
|
||||
JvmClassName packageClass = JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(packageFqName));
|
||||
Name name = ((JetNamedFunction) declaration).getNameAsName();
|
||||
return name == null ? null : packageClass.getInternalName() + "$" + name.asString();
|
||||
}
|
||||
|
||||
parentInternalName = JvmClassName.byFqNameWithoutInnerClasses(packageName).getInternalName();
|
||||
parentInternalName = JvmClassName.byFqNameWithoutInnerClasses(packageFqName).getInternalName();
|
||||
}
|
||||
|
||||
if (declaration instanceof JetClassObject) {
|
||||
|
||||
@@ -82,8 +82,9 @@ public class BuiltInsSerializer(val out: PrintStream?) {
|
||||
System.err.println("Could not make directories: " + destDir)
|
||||
}
|
||||
|
||||
for (fqName in ContainerUtil.mapNotNull(files) { it?.getPackageName() }.toSet()) {
|
||||
serializePackage(module, FqName(fqName), destDir)
|
||||
files.map { it.getPackageFqName() }.toSet().forEach {
|
||||
fqName ->
|
||||
serializePackage(module, fqName, destDir)
|
||||
}
|
||||
|
||||
out?.println("Total bytes written: $totalSize to $totalFiles files")
|
||||
|
||||
+1
-2
@@ -42,7 +42,6 @@ import org.jetbrains.jet.config.CommonConfigurationKeys;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
@@ -170,7 +169,7 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
// more than one main
|
||||
return null;
|
||||
}
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
FqName fqName = file.getPackageFqName();
|
||||
mainClass = PackageClassUtils.getPackageClassFqName(fqName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.PackageLikeBuilderDummy;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.psi.JetScript;
|
||||
import org.jetbrains.jet.lang.resolve.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
@@ -362,7 +361,7 @@ public class ReplInterpreter {
|
||||
state.beforeCompile();
|
||||
KotlinCodegenFacade.generatePackage(
|
||||
state,
|
||||
JetPsiUtil.getFQName((JetFile) script.getContainingFile()),
|
||||
((JetFile) script.getContainingFile()).getPackageFqName(),
|
||||
Collections.singleton((JetFile) script.getContainingFile()),
|
||||
errorHandler);
|
||||
}
|
||||
|
||||
+2
-3
@@ -25,7 +25,6 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -53,12 +52,12 @@ public abstract class JetFilesProvider {
|
||||
private final FqName name;
|
||||
|
||||
public SameJetFilePredicate(JetFile file) {
|
||||
this.name = JetPsiUtil.getFQName(file);
|
||||
this.name = file.getPackageFqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(PsiFile psiFile) {
|
||||
return JetPsiUtil.getFQName((JetFile) psiFile).equals(name);
|
||||
return ((JetFile) psiFile).getPackageFqName().equals(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ public class JetClass extends JetTypeParameterListOwnerStub<PsiJetClassStub> imp
|
||||
}
|
||||
PsiFile file = getContainingFile();
|
||||
if (!(file instanceof JetFile)) return null;
|
||||
String fileQualifiedName = ((JetFile) file).getPackageDirective().getQualifiedName();
|
||||
String fileQualifiedName = ((JetFile) file).getPackageFqName().asString();
|
||||
if (!fileQualifiedName.isEmpty()) {
|
||||
parts.add(fileQualifiedName);
|
||||
}
|
||||
|
||||
@@ -25,11 +25,11 @@ import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiClassOwner;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.JetNodeTypes;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.JetFileType;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
|
||||
@@ -92,23 +92,32 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
return null;
|
||||
}
|
||||
|
||||
// scripts have no package directive
|
||||
// scripts have no package directive, all other files must have package directives
|
||||
@Nullable
|
||||
public JetPackageDirective getPackageDirective() {
|
||||
ASTNode ast = getNode().findChildByType(JetNodeTypes.PACKAGE_DIRECTIVE);
|
||||
return ast != null ? (JetPackageDirective) ast.getPsi() : null;
|
||||
}
|
||||
|
||||
@Deprecated // getPackageFqName should be used instead
|
||||
@Override
|
||||
@Nullable
|
||||
@NotNull
|
||||
public String getPackageName() {
|
||||
return getPackageFqName().asString();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public FqName getPackageFqName() {
|
||||
PsiJetFileStub stub = (PsiJetFileStub) getStub();
|
||||
if (stub != null) {
|
||||
return stub.getPackageName();
|
||||
return stub.getPackageFqName();
|
||||
}
|
||||
|
||||
JetPackageDirective directive = getPackageDirective();
|
||||
return directive != null ? directive.getQualifiedName() : null;
|
||||
JetPackageDirective packageDirective = getPackageDirective();
|
||||
if (packageDirective == null) {
|
||||
return FqName.ROOT;
|
||||
}
|
||||
return packageDirective.getFqName();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -102,6 +102,6 @@ abstract class JetNamedDeclarationStub<T extends PsiJetStubWithFqName> extends J
|
||||
if (stub != null) {
|
||||
return stub.getFqName();
|
||||
}
|
||||
return JetPsiUtil.getFQName(this);
|
||||
return JetNamedDeclarationUtil.getFQName(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright 2010-2014 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.psi;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
|
||||
public final class JetNamedDeclarationUtil {
|
||||
@Nullable
|
||||
public static FqNameUnsafe getUnsafeFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
FqName fqName = namedDeclaration.getFqName();
|
||||
return fqName != null ? fqName.toUnsafe() : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
//NOTE: use JetNamedDeclaration#getFqName instead
|
||||
/*package private*/ static FqName getFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
Name name = namedDeclaration.getNameAsName();
|
||||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
FqName parentFqName = getParentFqName(namedDeclaration);
|
||||
|
||||
if (parentFqName == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return parentFqName.child(name);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqName getParentFqName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
PsiElement parent = namedDeclaration.getParent();
|
||||
if (parent instanceof JetClassBody) {
|
||||
// One nesting to JetClassBody doesn't affect to qualified name
|
||||
parent = parent.getParent();
|
||||
}
|
||||
|
||||
if (parent instanceof JetFile) {
|
||||
return ((JetFile) parent).getPackageFqName();
|
||||
}
|
||||
else if (parent instanceof JetNamedFunction || parent instanceof JetClass) {
|
||||
return getFQName((JetNamedDeclaration) parent);
|
||||
}
|
||||
else if (namedDeclaration instanceof JetParameter) {
|
||||
JetClass constructorClass = JetPsiUtil.getClassIfParameterIsProperty((JetParameter) namedDeclaration);
|
||||
if (constructorClass != null) {
|
||||
return getFQName(constructorClass);
|
||||
}
|
||||
}
|
||||
else if (parent instanceof JetObjectDeclaration) {
|
||||
if (parent.getParent() instanceof JetClassObject) {
|
||||
JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(parent, JetClassOrObject.class);
|
||||
if (classOrObject != null) {
|
||||
return getFQName(classOrObject);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return getFQName((JetNamedDeclaration) parent);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private JetNamedDeclarationUtil() {
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,10 @@ import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.PsiComment;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiWhiteSpace;
|
||||
import com.intellij.psi.impl.CheckUtil;
|
||||
import com.intellij.psi.impl.source.codeStyle.CodeEditUtil;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
@@ -189,68 +192,6 @@ public class JetPsiUtil {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static FqName getFQName(@NotNull JetFile file) {
|
||||
JetPackageDirective directive = file.getPackageDirective();
|
||||
return directive != null ? directive.getFqName() : FqName.ROOT;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqNameUnsafe getUnsafeFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
FqName fqName = getFQName(namedDeclaration);
|
||||
return fqName != null ? fqName.toUnsafe() : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqName getFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
Name name = namedDeclaration.getNameAsName();
|
||||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
FqName parentFqName = getParentFqName(namedDeclaration);
|
||||
|
||||
if (parentFqName == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return parentFqName.child(name);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqName getParentFqName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
PsiElement parent = namedDeclaration.getParent();
|
||||
if (parent instanceof JetClassBody) {
|
||||
// One nesting to JetClassBody doesn't affect to qualified name
|
||||
parent = parent.getParent();
|
||||
}
|
||||
|
||||
if (parent instanceof JetFile) {
|
||||
return getFQName((JetFile) parent);
|
||||
}
|
||||
else if (parent instanceof JetNamedFunction || parent instanceof JetClass) {
|
||||
return getFQName((JetNamedDeclaration) parent);
|
||||
}
|
||||
else if (namedDeclaration instanceof JetParameter) {
|
||||
JetClass constructorClass = getClassIfParameterIsProperty((JetParameter) namedDeclaration);
|
||||
if (constructorClass != null) {
|
||||
return getFQName(constructorClass);
|
||||
}
|
||||
}
|
||||
else if (parent instanceof JetObjectDeclaration) {
|
||||
if (parent.getParent() instanceof JetClassObject) {
|
||||
JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(parent, JetClassOrObject.class);
|
||||
if (classOrObject != null) {
|
||||
return getFQName(classOrObject);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return getFQName((JetNamedDeclaration) parent);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/** @return <code>null</code> iff the tye has syntactic errors */
|
||||
@Nullable
|
||||
public static FqName toQualifiedName(@NotNull JetUserType userType) {
|
||||
@@ -889,21 +830,6 @@ public class JetPsiUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static NavigatablePsiElement getPackageReference(@NotNull JetFile file, int partIndex) {
|
||||
JetPackageDirective directive = file.getPackageDirective();
|
||||
if (directive == null) {
|
||||
throw new IllegalArgumentException("Should be called only for files with package directive: " + file);
|
||||
}
|
||||
|
||||
List<JetSimpleNameExpression> names = directive.getPackageNames();
|
||||
if (!(0 <= partIndex && partIndex < names.size())) {
|
||||
throw new IndexOutOfBoundsException(String.format("%s index for file with directive %s is out of range", partIndex,
|
||||
directive.getText()));
|
||||
}
|
||||
|
||||
return names.get(partIndex);
|
||||
}
|
||||
|
||||
// Delete given element and all the elements separating it from the neighboring elements of the same class
|
||||
public static void deleteElementWithDelimiters(@NotNull PsiElement element) {
|
||||
PsiElement paramBefore = PsiTreeUtil.getPrevSiblingOfType(element, element.getClass());
|
||||
|
||||
@@ -17,9 +17,12 @@
|
||||
package org.jetbrains.jet.lang.psi.stubs;
|
||||
|
||||
import com.intellij.psi.stubs.PsiFileStub;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
public interface PsiJetFileStub extends PsiFileStub<JetFile> {
|
||||
String getPackageName();
|
||||
@NotNull
|
||||
FqName getPackageFqName();
|
||||
boolean isScript();
|
||||
}
|
||||
|
||||
+3
-3
@@ -65,16 +65,16 @@ public class JetFileElementType extends IStubFileElementType<PsiJetFileStub> {
|
||||
@Override
|
||||
public void serialize(@NotNull PsiJetFileStub stub, @NotNull StubOutputStream dataStream)
|
||||
throws IOException {
|
||||
dataStream.writeName(stub.getPackageName());
|
||||
dataStream.writeName(stub.getPackageFqName().asString());
|
||||
dataStream.writeBoolean(stub.isScript());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiJetFileStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
|
||||
StringRef packName = dataStream.readName();
|
||||
StringRef packageFqNameAsString = dataStream.readName();
|
||||
boolean isScript = dataStream.readBoolean();
|
||||
return new PsiJetFileStubImpl(null, packName, isScript);
|
||||
return new PsiJetFileStubImpl(null, packageFqNameAsString, isScript);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -31,6 +31,6 @@ public class JetFileStubBuilder extends DefaultStubBuilder {
|
||||
}
|
||||
|
||||
JetFile jetFile = (JetFile) file;
|
||||
return new PsiJetFileStubImpl(jetFile, jetFile.getPackageName(), jetFile.isScript());
|
||||
return new PsiJetFileStubImpl(jetFile, jetFile.getPackageFqName().asString(), jetFile.isScript());
|
||||
}
|
||||
}
|
||||
|
||||
+8
-13
@@ -24,9 +24,11 @@ import com.intellij.psi.stubs.PsiFileStubImpl;
|
||||
import com.intellij.psi.stubs.StubElement;
|
||||
import com.intellij.psi.tree.IStubFileElementType;
|
||||
import com.intellij.util.io.StringRef;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub;
|
||||
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,19 +37,20 @@ public class PsiJetFileStubImpl extends PsiFileStubImpl<JetFile> implements PsiJ
|
||||
private final StringRef packageName;
|
||||
private final boolean isScript;
|
||||
|
||||
public PsiJetFileStubImpl(JetFile jetFile, StringRef packageName, boolean isScript) {
|
||||
public PsiJetFileStubImpl(JetFile jetFile, @NotNull StringRef packageName, boolean isScript) {
|
||||
super(jetFile);
|
||||
this.packageName = packageName;
|
||||
this.isScript = isScript;
|
||||
}
|
||||
|
||||
public PsiJetFileStubImpl(JetFile jetFile, String packageName, boolean isScript) {
|
||||
public PsiJetFileStubImpl(JetFile jetFile, @NotNull String packageName, boolean isScript) {
|
||||
this(jetFile, StringRef.fromString(packageName), isScript);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPackageName() {
|
||||
return StringRef.toString(packageName);
|
||||
@NotNull
|
||||
public FqName getPackageFqName() {
|
||||
return new FqName(StringRef.toString(packageName));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -62,15 +65,7 @@ public class PsiJetFileStubImpl extends PsiFileStubImpl<JetFile> implements PsiJ
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append("PsiJetFileStubImpl[");
|
||||
|
||||
|
||||
builder.append("package=").append(getPackageName());
|
||||
builder.append("]");
|
||||
|
||||
return builder.toString();
|
||||
return "PsiJetFileStubImpl[" + "package=" + getPackageFqName().asString() + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -76,7 +76,7 @@ public class ImportsResolver {
|
||||
private void processImports(@NotNull TopDownAnalysisContext c, @NotNull LookupMode lookupMode) {
|
||||
for (JetFile file : c.getFiles()) {
|
||||
WritableScope fileScope = c.getFileScopes().get(file);
|
||||
processImportsInFile(lookupMode, fileScope, Lists.newArrayList(file.getImportDirectives()), JetPsiUtil.getFQName(file).isRoot());
|
||||
processImportsInFile(lookupMode, fileScope, Lists.newArrayList(file.getImportDirectives()), file.getPackageFqName().isRoot());
|
||||
}
|
||||
for (JetScript script : c.getScripts().keySet()) {
|
||||
WritableScope scriptScope = c.getScriptScopes().get(script);
|
||||
|
||||
@@ -104,8 +104,7 @@ public class ScriptHeaderResolver {
|
||||
|
||||
public void processScriptHierarchy(@NotNull TopDownAnalysisContext c, @NotNull JetScript script, @NotNull JetScope outerScope) {
|
||||
JetFile file = (JetFile) script.getContainingFile();
|
||||
JetPackageDirective packageDirective = file.getPackageDirective();
|
||||
FqName fqName = packageDirective != null ? new FqName(packageDirective.getQualifiedName()) : FqName.ROOT;
|
||||
FqName fqName = file.getPackageFqName();
|
||||
PackageFragmentDescriptor ns = packageFragmentProvider.getOrCreateFragment(fqName);
|
||||
|
||||
Integer priority = script.getUserData(PRIORITY_KEY);
|
||||
|
||||
@@ -154,7 +154,7 @@ public class TopDownAnalyzer {
|
||||
|
||||
private void registerTopLevelFqName(@NotNull JetNamedDeclaration declaration, @NotNull DeclarationDescriptor descriptor) {
|
||||
if (DescriptorUtils.isTopLevelDeclaration(descriptor)) {
|
||||
FqName fqName = JetPsiUtil.getFQName(declaration);
|
||||
FqName fqName = declaration.getFqName();
|
||||
if (fqName != null) {
|
||||
topLevelFqNames.put(fqName, declaration);
|
||||
}
|
||||
@@ -190,7 +190,7 @@ public class TopDownAnalyzer {
|
||||
DescriptorResolver.resolvePackageHeader(packageDirective, moduleDescriptor, trace);
|
||||
registerDeclarations(file.getDeclarations());
|
||||
|
||||
topLevelFqNames.put(JetPsiUtil.getFQName(file), packageDirective);
|
||||
topLevelFqNames.put(file.getPackageFqName(), packageDirective);
|
||||
}
|
||||
resolveAndCheckImports(file, resolveSession);
|
||||
}
|
||||
@@ -330,7 +330,7 @@ public class TopDownAnalyzer {
|
||||
Set<FqName> scriptFqNames = Sets.newHashSet();
|
||||
for (JetFile file : c.getFileScopes().keySet()) {
|
||||
if (file.isScript()) {
|
||||
scriptFqNames.add(JetPsiUtil.getFQName(file));
|
||||
scriptFqNames.add(file.getPackageFqName());
|
||||
}
|
||||
}
|
||||
for (MutablePackageFragmentDescriptor fragment : packageFragmentProvider.getAllFragments()) {
|
||||
|
||||
@@ -371,7 +371,7 @@ public class TypeHierarchyResolver {
|
||||
createClassDescriptorForSingleton(declaration, JetPsiUtil.safeName(declaration.getName()), ClassKind.OBJECT);
|
||||
|
||||
owner.addClassifierDescriptor(descriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getUnsafeFQName(declaration), descriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetNamedDeclarationUtil.getUnsafeFQName(declaration), descriptor);
|
||||
|
||||
descriptor.getBuilder().setClassObjectDescriptor(createSyntheticClassObject(descriptor));
|
||||
}
|
||||
@@ -476,7 +476,7 @@ public class TypeHierarchyResolver {
|
||||
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(
|
||||
containingDeclaration, outerScope, kind, isInner, JetPsiUtil.safeName(klass.getName()));
|
||||
c.getClasses().put(klass, mutableClassDescriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getUnsafeFQName(klass), mutableClassDescriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetNamedDeclarationUtil.getUnsafeFQName(klass), mutableClassDescriptor);
|
||||
|
||||
createClassObjectForEnumClass(mutableClassDescriptor);
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetNamedDeclaration;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.psi.JetNamedDeclarationUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.name.NamePackage;
|
||||
@@ -154,7 +154,7 @@ public class ResolveSessionUtils {
|
||||
@Nullable
|
||||
public static FqName safeFqNameForLazyResolve(@NotNull JetNamedDeclaration declaration) {
|
||||
//NOTE: should only create special names for package level declarations, so we can safely rely on real fq name for parent
|
||||
FqName parentFqName = JetPsiUtil.getParentFqName(declaration);
|
||||
FqName parentFqName = JetNamedDeclarationUtil.getParentFqName(declaration);
|
||||
return parentFqName != null ? parentFqName.child(safeNameForLazyResolve(declaration)) : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public class ScopeProvider {
|
||||
|
||||
@NotNull
|
||||
public JetScope getFileScope(@NotNull JetFile file) {
|
||||
return new ChainedScope(resolveSession.getPackageFragment(JetPsiUtil.getFQName(file)),
|
||||
return new ChainedScope(resolveSession.getPackageFragment(file.getPackageFqName()),
|
||||
"File scope: " + file.getName(),
|
||||
getFilePackageDescriptor(file).getMemberScope(),
|
||||
JetModuleUtil.getSubpackagesOfRootScope(resolveSession.getModuleDescriptor()),
|
||||
@@ -108,12 +108,7 @@ public class ScopeProvider {
|
||||
|
||||
@NotNull
|
||||
private PackageViewDescriptor getFilePackageDescriptor(JetFile file) {
|
||||
JetPackageDirective directive = file.getPackageDirective();
|
||||
if (directive == null) {
|
||||
throw new IllegalArgumentException("Scripts are not supported: " + file.getName());
|
||||
}
|
||||
|
||||
FqName fqName = new FqName(directive.getQualifiedName());
|
||||
FqName fqName = file.getPackageFqName();
|
||||
PackageViewDescriptor packageDescriptor = resolveSession.getModuleDescriptor().getPackage(fqName);
|
||||
|
||||
if (packageDescriptor == null) {
|
||||
|
||||
+1
-2
@@ -61,8 +61,7 @@ public abstract class JetClassOrObjectInfo<E extends JetClassOrObject> implement
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JetFile) {
|
||||
JetFile jetFile = (JetFile) file;
|
||||
JetPackageDirective directive = jetFile.getPackageDirective();
|
||||
return directive != null ? directive.getFqName() : FqName.ROOT;
|
||||
return jetFile.getPackageFqName();
|
||||
}
|
||||
throw new IllegalArgumentException("Not in a JetFile: " + element);
|
||||
}
|
||||
|
||||
+1
-6
@@ -59,12 +59,7 @@ public class FileBasedDeclarationProviderFactory extends AbstractDeclarationProv
|
||||
private static Index computeFilesByPackage(@NotNull Collection<JetFile> files) {
|
||||
Index index = new Index();
|
||||
for (JetFile file : files) {
|
||||
JetPackageDirective directive = file.getPackageDirective();
|
||||
if (directive == null) {
|
||||
throw new IllegalArgumentException("Scripts are not supported");
|
||||
}
|
||||
|
||||
FqName packageFqName = new FqName(directive.getQualifiedName());
|
||||
FqName packageFqName = file.getPackageFqName();
|
||||
addMeAndParentPackages(index, packageFqName);
|
||||
index.filesByPackage.put(packageFqName, file);
|
||||
}
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ public class FileBasedPackageMemberDeclarationProvider extends AbstractPsiBasedD
|
||||
protected void doCreateIndex(@NotNull Index index) {
|
||||
for (JetFile file : packageFiles) {
|
||||
for (JetDeclaration declaration : file.getDeclarations()) {
|
||||
assert fqName.asString().equals(file.getPackageName()) : "Files declaration utils contains file with invalid package";
|
||||
assert fqName.equals(file.getPackageFqName()) : "Files declaration utils contains file with invalid package";
|
||||
index.putToIndex(declaration);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -181,7 +181,7 @@ public class KotlinJavaFileStubProvider<T extends WithFileStub> implements Cache
|
||||
@NotNull
|
||||
@Override
|
||||
public FqName getPackageFqName() {
|
||||
return JetPsiUtil.getFQName(getFile());
|
||||
return getFile().getPackageFqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -288,7 +288,7 @@ public class KotlinLightClassForExplicitDeclaration extends KotlinWrappingLightC
|
||||
@NotNull
|
||||
@Override
|
||||
public String getPackageName() {
|
||||
return JetPsiUtil.getFQName((JetFile) classOrObject.getContainingFile()).asString();
|
||||
return ((JetFile) classOrObject.getContainingFile()).getPackageFqName().asString();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -234,12 +234,9 @@ public class LightClassUtil {
|
||||
|
||||
if (parent instanceof JetFile) {
|
||||
// top-level declaration
|
||||
FqName fqName = getPackageClassNameForFile((JetFile) parent);
|
||||
if (fqName != null) {
|
||||
Project project = declaration.getProject();
|
||||
|
||||
return JavaElementFinder.getInstance(project).findClass(fqName.asString(), GlobalSearchScope.allScope(project));
|
||||
}
|
||||
FqName fqName = PackageClassUtils.getPackageClassFqName(((JetFile) parent).getPackageFqName());
|
||||
Project project = declaration.getProject();
|
||||
return JavaElementFinder.getInstance(project).findClass(fqName.asString(), GlobalSearchScope.allScope(project));
|
||||
}
|
||||
else if (parent instanceof JetClassBody) {
|
||||
assert parent.getParent() instanceof JetClassOrObject;
|
||||
@@ -249,12 +246,6 @@ public class LightClassUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static FqName getPackageClassNameForFile(@NotNull JetFile jetFile) {
|
||||
String packageName = jetFile.getPackageName();
|
||||
return packageName == null ? null : PackageClassUtils.getPackageClassFqName(new FqName(packageName));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static PropertyAccessorsPsiMethods extractPropertyAccessors(
|
||||
@NotNull JetDeclaration jetDeclaration,
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.asm4.FieldVisitor;
|
||||
import org.jetbrains.asm4.MethodVisitor;
|
||||
import org.jetbrains.jet.codegen.AbstractClassBuilder;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
@@ -81,7 +80,7 @@ public class StubClassBuilder extends AbstractClassBuilder {
|
||||
super.defineClass(origin, version, access, name, signature, superName, interfaces);
|
||||
|
||||
if (origin instanceof JetFile) {
|
||||
FqName packageName = JetPsiUtil.getFQName((JetFile) origin);
|
||||
FqName packageName = ((JetFile) origin).getPackageFqName();
|
||||
String packageClassName = PackageClassUtils.getPackageClassName(packageName);
|
||||
|
||||
if (name.equals(packageClassName) || name.endsWith("/" + packageClassName)) {
|
||||
|
||||
@@ -20,7 +20,6 @@ import com.google.common.collect.Sets;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.ConfigurationKind;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
@@ -40,7 +39,7 @@ public class AnnotationGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
private Class<?> getPackageClass(@NotNull ClassLoader loader) throws ClassNotFoundException {
|
||||
return loader.loadClass(PackageClassUtils.getPackageClassName(JetPsiUtil.getFQName(myFiles.getPsiFile())));
|
||||
return loader.loadClass(PackageClassUtils.getPackageClassName(myFiles.getPsiFile().getPackageFqName()));
|
||||
}
|
||||
|
||||
private Class<?> getPackageSrcClass(@NotNull ClassLoader loader) throws ClassNotFoundException {
|
||||
|
||||
@@ -36,7 +36,6 @@ import org.jetbrains.jet.OutputFile;
|
||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
@@ -169,7 +168,7 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
||||
|
||||
@NotNull
|
||||
protected Class<?> generatePackageClass() {
|
||||
FqName packageFqName = JetPsiUtil.getFQName(myFiles.getPsiFile());
|
||||
FqName packageFqName = myFiles.getPsiFile().getPackageFqName();
|
||||
return generateClass(getPackageClassFqName(packageFqName).asString());
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@ import org.jetbrains.jet.TestJdkKind;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.CodegenTestCase;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.File;
|
||||
@@ -92,7 +91,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
|
||||
private void blackBox() {
|
||||
// If there are many files, the first of them should contain the 'box(): String' function
|
||||
JetFile firstFile = myFiles.getPsiFiles().get(0);
|
||||
String fqName = getPackageClassFqName(JetPsiUtil.getFQName(firstFile)).asString();
|
||||
String fqName = getPackageClassFqName(firstFile.getPackageFqName()).asString();
|
||||
|
||||
Class<?> aClass = generateClass(fqName);
|
||||
try {
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe
|
||||
psiFile.accept(new JetVisitorVoid() {
|
||||
@Override
|
||||
public void visitJetFile(@NotNull JetFile file) {
|
||||
FqName fqName = file.getPackageDirective().getFqName();
|
||||
FqName fqName = file.getPackageFqName();
|
||||
if (!fqName.isRoot()) {
|
||||
PackageViewDescriptor packageDescriptor = lazyModule.getPackage(fqName);
|
||||
descriptors.add(packageDescriptor);
|
||||
|
||||
@@ -37,6 +37,7 @@ import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.name.SpecialNames;
|
||||
|
||||
@@ -90,15 +91,9 @@ public class LazyResolveTestUtil {
|
||||
public static Set<Name> getTopLevelPackagesFromFileList(@NotNull List<JetFile> files) {
|
||||
Set<Name> shortNames = Sets.newLinkedHashSet();
|
||||
for (JetFile file : files) {
|
||||
JetPackageDirective directive = file.getPackageDirective();
|
||||
if (directive != null) {
|
||||
List<JetSimpleNameExpression> names = directive.getPackageNames();
|
||||
Name name = names.isEmpty() ? SpecialNames.ROOT_PACKAGE : names.get(0).getReferencedNameAsName();
|
||||
shortNames.add(name);
|
||||
}
|
||||
else {
|
||||
throw new IllegalStateException("Scripts are not supported: " + file.getName());
|
||||
}
|
||||
List<Name> packageFqNameSegments = file.getPackageFqName().pathSegments();
|
||||
Name name = packageFqNameSegments.isEmpty() ? SpecialNames.ROOT_PACKAGE : packageFqNameSegments.get(0);
|
||||
shortNames.add(name);
|
||||
}
|
||||
return shortNames;
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class DescriptorRendererTest extends JetLiteFixture {
|
||||
final BindingContext bindingContext = analyzeExhaust.getBindingContext();
|
||||
final List<DeclarationDescriptor> descriptors = new ArrayList<DeclarationDescriptor>();
|
||||
|
||||
FqName fqName = psiFile.getPackageDirective().getFqName();
|
||||
FqName fqName = psiFile.getPackageFqName();
|
||||
if (!fqName.isRoot()) {
|
||||
PackageViewDescriptor packageDescriptor = analyzeExhaust.getModuleDescriptor().getPackage(fqName);
|
||||
descriptors.add(packageDescriptor);
|
||||
|
||||
@@ -259,10 +259,7 @@ public class JetShortNamesCache extends PsiShortNamesCache {
|
||||
PsiFile containingFile = jetNamedFunction.getContainingFile();
|
||||
if (containingFile instanceof JetFile) {
|
||||
JetFile jetFile = (JetFile) containingFile;
|
||||
String packageName = jetFile.getPackageName();
|
||||
if (packageName != null) {
|
||||
affectedPackages.add(new FqName(packageName));
|
||||
}
|
||||
affectedPackages.add(jetFile.getPackageFqName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -20,11 +20,9 @@ import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.libraries.LibraryUtil;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -122,7 +120,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport
|
||||
// Scripts are not supported
|
||||
if (file.isScript()) continue;
|
||||
|
||||
FqName packageFqName = JetPsiUtil.getFQName(file);
|
||||
FqName packageFqName = file.getPackageFqName();
|
||||
|
||||
// make sure we create a package descriptor
|
||||
PackageViewDescriptor packageDescriptor = session.getModuleDescriptor().getPackage(packageFqName);
|
||||
|
||||
@@ -190,7 +190,7 @@ public class JetPositionManager implements PositionManager {
|
||||
}
|
||||
|
||||
private JetTypeMapper prepareTypeMapper(final JetFile file) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
FqName fqName = file.getPackageFqName();
|
||||
CachedValue<JetTypeMapper> value = myTypeMappers.get(fqName);
|
||||
if(value == null) {
|
||||
value = CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider<JetTypeMapper>() {
|
||||
@@ -248,7 +248,7 @@ public class JetPositionManager implements PositionManager {
|
||||
|
||||
@TestOnly
|
||||
public void addTypeMapper(JetFile file, final JetTypeMapper typeMapper) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
FqName fqName = file.getPackageFqName();
|
||||
CachedValue<JetTypeMapper> value = CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider<JetTypeMapper>() {
|
||||
@Override
|
||||
public Result<JetTypeMapper> compute() {
|
||||
|
||||
@@ -376,11 +376,9 @@ public class ResolveElementCache {
|
||||
|
||||
if (expression.getParent() instanceof JetDotQualifiedExpression) {
|
||||
JetExpression element = ((JetDotQualifiedExpression) expression.getParent()).getReceiverExpression();
|
||||
String name = ((JetFile) expression.getContainingFile()).getPackageName();
|
||||
FqName fqName = ((JetFile) expression.getContainingFile()).getPackageFqName();
|
||||
|
||||
PackageViewDescriptor filePackage = name != null
|
||||
? resolveSession.getModuleDescriptor().getPackage(new FqName(name))
|
||||
: rootPackage;
|
||||
PackageViewDescriptor filePackage = resolveSession.getModuleDescriptor().getPackage(fqName);
|
||||
assert filePackage != null : "File package should be already resolved and be found";
|
||||
|
||||
JetScope scope = filePackage.getMemberScope();
|
||||
|
||||
@@ -674,7 +674,7 @@ public class CreateFunctionFromUsageFix extends CreateFromUsageFixBase {
|
||||
|
||||
JetScope scope;
|
||||
if (isExtension) {
|
||||
scope = currentFileModule.getPackage(JetPsiUtil.getFQName(currentFile)).getMemberScope();
|
||||
scope = currentFileModule.getPackage(currentFile.getPackageFqName()).getMemberScope();
|
||||
}
|
||||
else {
|
||||
scope = ((ClassDescriptorWithResolutionScopes) ownerClassDescriptor).getScopeForMemberDeclarationResolution();
|
||||
|
||||
@@ -127,7 +127,7 @@ public class ImportInsertHelper {
|
||||
}
|
||||
|
||||
// There's no need to import a declaration from the package of current file
|
||||
if (JetPsiUtil.getFQName(jetFile).equals(importPath.fqnPart().parent())) {
|
||||
if (jetFile.getPackageFqName().equals(importPath.fqnPart().parent())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -77,7 +77,7 @@ public class MoveKotlinFileHandler : MoveFileHandler() {
|
||||
}
|
||||
|
||||
private fun JetFile.packageMatchesDirectory(): Boolean {
|
||||
return getPackageName() == getParent()?.getPackage()?.getQualifiedName()
|
||||
return getPackageFqName().asString() == getParent()?.getPackage()?.getQualifiedName()
|
||||
}
|
||||
|
||||
override fun canProcessElement(element: PsiFile?): Boolean {
|
||||
@@ -91,7 +91,7 @@ public class MoveKotlinFileHandler : MoveFileHandler() {
|
||||
if (newPackage != null) {
|
||||
file.putCopyableUserData(
|
||||
PACKAGE_NAME_INFO_KEY,
|
||||
PackageNameInfo(JetPsiUtil.getFQName(file), FqName(newPackage.getQualifiedName()))
|
||||
PackageNameInfo(file.getPackageFqName(), FqName(newPackage.getQualifiedName()))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -239,10 +239,9 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
||||
|
||||
assert(targetFile is JetFile, "Couldn't create Koltin file for: ${declaration.getClass()}: ${declaration.getText()}")
|
||||
|
||||
val newPackage = (targetFile as JetFile).getPackageName()
|
||||
assert (newPackage != null, "${targetFile.getClass()}: ${targetFile.getText()}")
|
||||
val newPackageFqName = (targetFile as JetFile).getPackageFqName()
|
||||
|
||||
val packageNameInfo = PackageNameInfo(JetPsiUtil.getFQName(file!!), FqName(newPackage!!))
|
||||
val packageNameInfo = PackageNameInfo(file!!.getPackageFqName(), newPackageFqName)
|
||||
declaration.updateInternalReferencesOnPackageNameChange(packageNameInfo, ShorteningMode.NO_SHORTENING)
|
||||
|
||||
val newElement = targetFile.add(declaration) as JetNamedDeclaration
|
||||
|
||||
@@ -29,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.analyzer.AnalyzerFacade;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
@@ -73,7 +72,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
||||
|
||||
mySourceElement = file;
|
||||
|
||||
FqName startClassFQName = PackageClassUtils.getPackageClassFqName(JetPsiUtil.getFQName(file));
|
||||
FqName startClassFQName = PackageClassUtils.getPackageClassFqName(file.getPackageFqName());
|
||||
|
||||
return createConfigurationByQName(module, configurationContext, startClassFQName);
|
||||
}
|
||||
@@ -119,7 +118,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
||||
return null;
|
||||
}
|
||||
|
||||
FqName startClassFQName = PackageClassUtils.getPackageClassFqName(JetPsiUtil.getFQName(file));
|
||||
FqName startClassFQName = PackageClassUtils.getPackageClassFqName(file.getPackageFqName());
|
||||
|
||||
for (RunnerAndConfigurationSettings existingConfiguration : existingConfigurations) {
|
||||
if (existingConfiguration.getType() instanceof JetRunConfigurationType) {
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.NamePackage;
|
||||
|
||||
@@ -41,7 +40,7 @@ public final class PackageIndexUtil {
|
||||
|
||||
Set<FqName> result = Sets.newHashSet();
|
||||
for (JetFile file : files) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
FqName fqName = file.getPackageFqName();
|
||||
|
||||
assert NamePackage.isSubpackageOf(fqName, packageFqName) :
|
||||
"Registered package is not a subpackage of actually declared package:\n" +
|
||||
@@ -66,7 +65,7 @@ public final class PackageIndexUtil {
|
||||
return ContainerUtil.filter(files, new Condition<JetFile>() {
|
||||
@Override
|
||||
public boolean value(JetFile file) {
|
||||
return packageFqName.equals(JetPsiUtil.getFQName(file));
|
||||
return packageFqName.equals(file.getPackageFqName());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -29,15 +29,14 @@ public class StubIndexServiceImpl implements StubIndexService {
|
||||
|
||||
@Override
|
||||
public void indexFile(PsiJetFileStub stub, IndexSink sink) {
|
||||
String packageName = stub.getPackageName();
|
||||
FqName fqName = new FqName(packageName == null ? "" : packageName);
|
||||
FqName packageFqName = stub.getPackageFqName();
|
||||
|
||||
while (true) {
|
||||
sink.occurrence(JetAllPackagesIndex.getInstance().getKey(), fqName.asString());
|
||||
if (fqName.isRoot()) {
|
||||
sink.occurrence(JetAllPackagesIndex.getInstance().getKey(), packageFqName.asString());
|
||||
if (packageFqName.isRoot()) {
|
||||
return;
|
||||
}
|
||||
fqName = fqName.parent();
|
||||
packageFqName = packageFqName.parent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,10 +100,8 @@ public class StubIndexServiceImpl implements StubIndexService {
|
||||
StubElement parentStub = stub.getParentStub();
|
||||
if (parentStub instanceof PsiJetFileStub) {
|
||||
PsiJetFileStub jetFileStub = (PsiJetFileStub) parentStub;
|
||||
String packageName = jetFileStub.getPackageName();
|
||||
if (packageName != null) {
|
||||
sink.occurrence(JetClassByPackageIndex.getInstance().getKey(), packageName);
|
||||
}
|
||||
FqName packageFqName = jetFileStub.getPackageFqName();
|
||||
sink.occurrence(JetClassByPackageIndex.getInstance().getKey(), packageFqName.asString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.codegen.binding.PsiCodegenPredictor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.JetFilesProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
@@ -53,7 +52,7 @@ public class DebuggerUtils {
|
||||
public boolean apply(@Nullable JetFile file) {
|
||||
return file != null
|
||||
&& file.getName().equals(fileName)
|
||||
&& JetPsiUtil.getFQName(file).equals(packageFqName);
|
||||
&& file.getPackageFqName().equals(packageFqName);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.jetbrains.jet.asJava.KotlinLightClassForExplicitDeclaration;
|
||||
import org.jetbrains.jet.asJava.KotlinLightClassForPackage;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.NamePackage;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
@@ -46,8 +45,8 @@ public class JetPsiHeuristicsUtil {
|
||||
// The class is declared private in the targetPackage
|
||||
// It is visible in this package and all of its subpackages
|
||||
JetFile targetFile = (JetFile) classOrObject.getContainingFile();
|
||||
FqName targetPackage = JetPsiUtil.getFQName(targetFile);
|
||||
FqName fromPackage = JetPsiUtil.getFQName(fromFile);
|
||||
FqName targetPackage = targetFile.getPackageFqName();
|
||||
FqName fromPackage = fromFile.getPackageFqName();
|
||||
|
||||
return NamePackage.isSubpackageOf(fromPackage, targetPackage);
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ public abstract class AbstractRenameTest : MultiFileTestCase() {
|
||||
val document = FileDocumentManager.getInstance()!!.getDocument(mainFile)!!
|
||||
val jetFile = PsiDocumentManager.getInstance(context.project).getPsiFile(document) as JetFile
|
||||
|
||||
val fileFqn = jetFile.getPackageDirective()!!.getFqName()
|
||||
val fileFqn = jetFile.getPackageFqName()
|
||||
Assert.assertTrue("File '${mainFilePath}' should have package containing ${fqn}", fileFqn.isSubpackageOf(fqn))
|
||||
|
||||
val packageSegment = jetFile.getPackageDirective()!!.getPackageNames()[fqn.pathSegments().size - 1]
|
||||
|
||||
Reference in New Issue
Block a user