Don't add import after insertion function with fqn

This commit is contained in:
Nikolay Krasko
2012-02-08 12:53:56 +04:00
parent 04220935e0
commit e8ffaa28f3
7 changed files with 69 additions and 63 deletions
@@ -1,41 +0,0 @@
package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.util.QualifiedNamesUtil;
/**
* @author Nikolay Krasko
*/
public final class DescriptorsUtils {
private DescriptorsUtils() {
}
public static String getFQName(@NotNull NamespaceDescriptor namespaceDescriptor) {
NamespaceDescriptor tempNamespace = namespaceDescriptor;
String fqn = tempNamespace.getName();
while (tempNamespace.getContainingDeclaration() instanceof NamespaceDescriptor) {
tempNamespace = (NamespaceDescriptor) tempNamespace.getContainingDeclaration();
assert tempNamespace != null;
fqn = tempNamespace.getName() + "." + fqn;
}
return fqn;
}
public static String getFQName(@NotNull NamedFunctionDescriptor functionDescriptor) {
if (functionDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor) {
final String namespaceFQN = getFQName((NamespaceDescriptor) functionDescriptor.getContainingDeclaration());
return QualifiedNamesUtil.combine(namespaceFQN, functionDescriptor.getName());
}
throw new IllegalArgumentException("Currently supported only for top level functions");
}
public static boolean isTopLevelFunction(@NotNull NamedFunctionDescriptor functionDescriptor) {
return functionDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor;
}
}
@@ -1,23 +1,16 @@
package org.jetbrains.jet.lang.resolve;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetObjectDeclaration;
import org.jetbrains.jet.lang.psi.JetObjectDeclarationName;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor.NO_RECEIVER;
@@ -175,6 +168,10 @@ public class DescriptorUtils {
return descriptor.getName();
}
public static boolean isTopLevelFunction(@NotNull NamedFunctionDescriptor functionDescriptor) {
return functionDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor;
}
@Nullable
public static <D extends DeclarationDescriptor> D getParentOfType(@Nullable DeclarationDescriptor descriptor, @NotNull Class<D> aClass) {
return getParentOfType(descriptor, aClass, true);