From 5753f93a57189dac68855c03efce2c1258c5cb41 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Fri, 17 Nov 2017 16:39:48 +0100 Subject: [PATCH] Support java synthetic properties in DependencyCollector --- .../kotlin/ir/util/DependenciesCollector.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DependenciesCollector.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DependenciesCollector.kt index 35dc2c23655..5567c38fe12 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DependenciesCollector.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DependenciesCollector.kt @@ -82,16 +82,25 @@ class DependenciesCollector { private fun Collection.addTopLevelDeclarations() { forEach { - addTopLevelDescriptor(getTopLevelDeclaration(it.descriptor)) + getTopLevelDeclaration(it.descriptor)?.let { addTopLevelDescriptor(it) } } } - private fun getTopLevelDeclaration(descriptor: DeclarationDescriptor): DeclarationDescriptor { + private fun getTopLevelDeclaration(descriptor: DeclarationDescriptor): DeclarationDescriptor? { val containingDeclaration = descriptor.containingDeclaration return when (containingDeclaration) { is PackageFragmentDescriptor -> descriptor is ClassDescriptor -> getTopLevelDeclaration(containingDeclaration) - else -> throw AssertionError("Package or class expected: $containingDeclaration; for $descriptor") + else -> + if (descriptor is PropertyAccessorDescriptor && + descriptor.kind == CallableMemberDescriptor.Kind.SYNTHESIZED && + containingDeclaration is ModuleDescriptor + ) { + //skip synthetic java properties + null + } else { + throw AssertionError("Package or class expected: $containingDeclaration; for $descriptor") + } } }