Add [tailRecursive] annotation to built-ins
This commit is contained in:
committed by
Andrey Breslav
parent
d2a31d88cd
commit
b62e5e3ef5
@@ -401,6 +401,11 @@ public class KotlinBuiltIns {
|
||||
return getBuiltInClassByName("volatile");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getTailRecursiveAnnotationClass() {
|
||||
return getBuiltInClassByName("tailRecursive");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getDeprecatedAnnotation() {
|
||||
return getBuiltInClassByName("deprecated");
|
||||
@@ -955,6 +960,10 @@ public class KotlinBuiltIns {
|
||||
return containsAnnotation(declarationDescriptor, getDeprecatedAnnotation());
|
||||
}
|
||||
|
||||
public boolean isTailRecursive(@NotNull DeclarationDescriptor declarationDescriptor) {
|
||||
return containsAnnotation(declarationDescriptor, getTailRecursiveAnnotationClass());
|
||||
}
|
||||
|
||||
static boolean containsAnnotation(DeclarationDescriptor descriptor, ClassDescriptor annotationClass) {
|
||||
List<AnnotationDescriptor> annotations = descriptor.getOriginal().getAnnotations();
|
||||
if (annotations != null) {
|
||||
|
||||
Reference in New Issue
Block a user