Search in sources :

Example 16 with Name

use of org.jetbrains.kotlin.name.Name in project kotlin by JetBrains.

the class KtNamedDeclarationUtil method getFQName.

@Nullable
static /*package private*/
FqName getFQName(@NotNull KtNamedDeclaration namedDeclaration) {
    Name name = namedDeclaration.getNameAsName();
    if (name == null) {
        return null;
    }
    FqName parentFqName = getParentFqName(namedDeclaration);
    if (parentFqName == null) {
        return null;
    }
    return parentFqName.child(name);
}
Also used : FqName(org.jetbrains.kotlin.name.FqName) FqName(org.jetbrains.kotlin.name.FqName) Name(org.jetbrains.kotlin.name.Name) Nullable(org.jetbrains.annotations.Nullable)

Example 17 with Name

use of org.jetbrains.kotlin.name.Name in project kotlin by JetBrains.

the class AbstractAnnotationDescriptorResolveTest method getFunctionDescriptor.

@NotNull
private static FunctionDescriptor getFunctionDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
    Name functionName = Name.identifier(name);
    MemberScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
    Collection<SimpleFunctionDescriptor> functions = memberScope.getContributedFunctions(functionName, NoLookupLocation.FROM_TEST);
    assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + classDescriptor.getName();
    return functions.iterator().next();
}
Also used : MemberScope(org.jetbrains.kotlin.resolve.scopes.MemberScope) FqName(org.jetbrains.kotlin.name.FqName) Name(org.jetbrains.kotlin.name.Name) NotNull(org.jetbrains.annotations.NotNull)

Example 18 with Name

use of org.jetbrains.kotlin.name.Name in project kotlin by JetBrains.

the class AbstractAnnotationDescriptorResolveTest method getInnerClassDescriptor.

@NotNull
private static ClassDescriptor getInnerClassDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
    Name propertyName = Name.identifier(name);
    MemberScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
    ClassifierDescriptor innerClass = memberScope.getContributedClassifier(propertyName, NoLookupLocation.FROM_TEST);
    assert innerClass instanceof ClassDescriptor : "Failed to find inner class " + propertyName + " in class " + classDescriptor.getName();
    return (ClassDescriptor) innerClass;
}
Also used : MemberScope(org.jetbrains.kotlin.resolve.scopes.MemberScope) FqName(org.jetbrains.kotlin.name.FqName) Name(org.jetbrains.kotlin.name.Name) NotNull(org.jetbrains.annotations.NotNull)

Example 19 with Name

use of org.jetbrains.kotlin.name.Name in project kotlin by JetBrains.

the class AbstractAnnotationDescriptorResolveTest method getFunctionDescriptor.

@NotNull
protected static FunctionDescriptor getFunctionDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name) {
    Name functionName = Name.identifier(name);
    MemberScope memberScope = packageView.getMemberScope();
    Collection<SimpleFunctionDescriptor> functions = memberScope.getContributedFunctions(functionName, NoLookupLocation.FROM_TEST);
    assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + packageView.getName();
    return functions.iterator().next();
}
Also used : MemberScope(org.jetbrains.kotlin.resolve.scopes.MemberScope) FqName(org.jetbrains.kotlin.name.FqName) Name(org.jetbrains.kotlin.name.Name) NotNull(org.jetbrains.annotations.NotNull)

Example 20 with Name

use of org.jetbrains.kotlin.name.Name in project kotlin by JetBrains.

the class AbstractAnnotationDescriptorResolveTest method getPropertyDescriptor.

@Nullable
protected static PropertyDescriptor getPropertyDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name, boolean failOnMissing) {
    Name propertyName = Name.identifier(name);
    MemberScope memberScope = packageView.getMemberScope();
    Collection<PropertyDescriptor> properties = memberScope.getContributedVariables(propertyName, NoLookupLocation.FROM_TEST);
    if (properties.isEmpty()) {
        for (DeclarationDescriptor descriptor : DescriptorUtils.getAllDescriptors(memberScope)) {
            if (descriptor instanceof ClassDescriptor) {
                Collection<PropertyDescriptor> classProperties = ((ClassDescriptor) descriptor).getMemberScope(Collections.<TypeProjection>emptyList()).getContributedVariables(propertyName, NoLookupLocation.FROM_TEST);
                if (!classProperties.isEmpty()) {
                    properties = classProperties;
                    break;
                }
            }
        }
    }
    if (failOnMissing) {
        assert properties.size() == 1 : "Failed to find property " + propertyName + " in class " + packageView.getName();
    } else if (properties.size() != 1) {
        return null;
    }
    return properties.iterator().next();
}
Also used : TypeProjection(org.jetbrains.kotlin.types.TypeProjection) MemberScope(org.jetbrains.kotlin.resolve.scopes.MemberScope) FqName(org.jetbrains.kotlin.name.FqName) Name(org.jetbrains.kotlin.name.Name) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

Name (org.jetbrains.kotlin.name.Name)37 FqName (org.jetbrains.kotlin.name.FqName)18 NotNull (org.jetbrains.annotations.NotNull)16 Nullable (org.jetbrains.annotations.Nullable)10 KotlinType (org.jetbrains.kotlin.types.KotlinType)6 MemberScope (org.jetbrains.kotlin.resolve.scopes.MemberScope)5 PsiElement (com.intellij.psi.PsiElement)4 IElementType (com.intellij.psi.tree.IElementType)3 Annotations (org.jetbrains.kotlin.descriptors.annotations.Annotations)3 CompositeAnnotations (org.jetbrains.kotlin.descriptors.annotations.CompositeAnnotations)3 ExpressionReceiver (org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver)3 List (java.util.List)2 AnnotationSplitter (org.jetbrains.kotlin.descriptors.annotations.AnnotationSplitter)2 DescriptorUtils.getFqName (org.jetbrains.kotlin.resolve.DescriptorUtils.getFqName)2 TemporaryBindingTrace (org.jetbrains.kotlin.resolve.TemporaryBindingTrace)2 ASTNode (com.intellij.lang.ASTNode)1 PsiClass (com.intellij.psi.PsiClass)1 Function (com.intellij.util.Function)1 ArrayList (java.util.ArrayList)1 Pair (kotlin.Pair)1