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:
Pavel V. Talanov
2014-03-18 19:52:03 +04:00
parent 37538f9524
commit a1dbf221b3
53 changed files with 197 additions and 229 deletions
@@ -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 {
@@ -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);