From c3b6abfb1f5d57e5d3c591632f905bd5a24f1b9d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 28 Mar 2018 19:48:50 +0200 Subject: [PATCH] Minor, add javadoc to KotlinBuiltIns.isBuiltIn --- .../org/jetbrains/kotlin/builtins/KotlinBuiltIns.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index ba388478f59..b9540cb8548 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -391,6 +391,15 @@ public abstract class KotlinBuiltIns { return packageFragments.invoke().builtInsPackageFragment; } + /** + * Checks if the given descriptor is declared in the deserialized built-in package fragment, i.e. if it was loaded as a part of + * loading .kotlin_builtins definition files. + * + * NOTE: this method returns false for descriptors loaded from .class files or other binaries, even if they are "built-in" in some + * other sense! For example, it returns false for the class descriptor of `kotlin.IntRange` loaded from `kotlin/IntRange.class`. + * In case you need to check if the class is "built-in" in another sense, you should probably do it by inspecting its FQ name, + * or the FQ name of its containing package. + */ public static boolean isBuiltIn(@NotNull DeclarationDescriptor descriptor) { return DescriptorUtils.getParentOfType(descriptor, BuiltInsPackageFragment.class, false) != null; }