Provide DescriptorUtils.isAnonymousFunction (for IR-based BE)
This commit is contained in:
+2
-2
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.name.SpecialNames;
|
||||
|
||||
public class AnonymousFunctionDescriptor extends SimpleFunctionDescriptorImpl {
|
||||
private final boolean isSuspend;
|
||||
@@ -32,7 +32,7 @@ public class AnonymousFunctionDescriptor extends SimpleFunctionDescriptorImpl {
|
||||
@NotNull SourceElement source,
|
||||
boolean isSuspend
|
||||
) {
|
||||
super(containingDeclaration, null, annotations, Name.special("<anonymous>"), kind, source);
|
||||
super(containingDeclaration, null, annotations, SpecialNames.ANONYMOUS_FUNCTION, kind, source);
|
||||
this.isSuspend = isSuspend;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.lexer.KtTokens;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.name.SpecialNames;
|
||||
|
||||
public class KtFunctionLiteral extends KtFunctionNotStubbed {
|
||||
public KtFunctionLiteral(@NotNull ASTNode node) {
|
||||
@@ -37,7 +38,7 @@ public class KtFunctionLiteral extends KtFunctionNotStubbed {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "<anonymous>";
|
||||
return SpecialNames.ANONYMOUS;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,6 +31,9 @@ public class SpecialNames {
|
||||
// The name contains a GUID to avoid clashes, if a clash happens, it's not a big deal: the code does not compile anyway
|
||||
public static final Name SAFE_IDENTIFIER_FOR_NO_NAME = Name.identifier("no_name_in_PSI_3d19d79d_1ba9_4cd0_b7f5_b46aa3cd5d40");
|
||||
|
||||
public static final String ANONYMOUS = "<anonymous>";
|
||||
public static final Name ANONYMOUS_FUNCTION = Name.special(ANONYMOUS);
|
||||
|
||||
@NotNull
|
||||
public static Name safeIdentifier(@Nullable Name name) {
|
||||
return name != null && !name.isSpecial() ? name : SAFE_IDENTIFIER_FOR_NO_NAME;
|
||||
|
||||
@@ -284,6 +284,12 @@ public class DescriptorUtils {
|
||||
return isClass(descriptor) && descriptor.getName().equals(SpecialNames.NO_NAME_PROVIDED);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public static boolean isAnonymousFunction(@NotNull DeclarationDescriptor descriptor) {
|
||||
return descriptor instanceof SimpleFunctionDescriptor &&
|
||||
descriptor.getName().equals(SpecialNames.ANONYMOUS_FUNCTION);
|
||||
}
|
||||
|
||||
public static boolean isNonCompanionObject(@NotNull DeclarationDescriptor descriptor) {
|
||||
return isKindOf(descriptor, ClassKind.OBJECT) && !((ClassDescriptor) descriptor).isCompanionObject();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user