jvm-abi-gen: Mark all anonymous objects in inline function scope as public

Anonymous objects inside of a private inline function nested in a public
inline function can still escape.
This commit is contained in:
Steven Schäfer
2021-06-29 16:43:45 +02:00
committed by Alexander Udalov
parent d94817cfb6
commit 3ffe495346
11 changed files with 115 additions and 15 deletions
@@ -76,11 +76,10 @@ public class InlineUtil {
public static boolean isInPublicInlineScope(@Nullable DeclarationDescriptor descriptor) {
if (descriptor == null) return false;
if (isInline(descriptor)) {
if (!(descriptor instanceof DeclarationDescriptorWithVisibility))
return false;
if (isInline(descriptor) && descriptor instanceof DeclarationDescriptorWithVisibility) {
DescriptorVisibility visibility = ((DeclarationDescriptorWithVisibility) descriptor).getVisibility();
return !DescriptorVisibilities.isPrivate(visibility);
if (!DescriptorVisibilities.isPrivate(visibility))
return true;
}
return isInPublicInlineScope(descriptor.getContainingDeclaration());
}