From fa32aa29500776892deee5b4295d6f414ef85977 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Wed, 7 Oct 2015 09:18:05 +0300 Subject: [PATCH] SYNTHETIC flag for internal members --- .../backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java | 2 +- .../src/org/jetbrains/kotlin/codegen/PropertyCodegen.java | 4 ++++ .../src/org/jetbrains/kotlin/psi/addRemoveModifier.kt | 6 +++--- .../FileBasedPackageMemberDeclarationProvider.kt | 2 +- .../src/kotlin/reflect/jvm/internal/foreignKClasses.kt | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index c1dd07a8f9e..24dd03f3126 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -212,7 +212,7 @@ public class AsmUtil { flags |= ACC_ABSTRACT; } - if (JetTypeMapper.isAccessor(functionDescriptor)) { + if (JetTypeMapper.isAccessor(functionDescriptor) || functionDescriptor.getVisibility() == Visibilities.INTERNAL) { flags |= ACC_SYNTHETIC; } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java index a9e21daeacd..c3893f68e35 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java @@ -331,6 +331,10 @@ public class PropertyCodegen { modifiers |= ACC_PRIVATE; } + if (propertyDescriptor.getVisibility() == Visibilities.INTERNAL) { + modifiers |= ACC_SYNTHETIC; + } + if (AsmUtil.isPropertyWithBackingFieldCopyInOuterClass(propertyDescriptor)) { ImplementationBodyCodegen parentBodyCodegen = (ImplementationBodyCodegen) memberCodegen.getParentCodegen(); parentBodyCodegen.addCompanionObjectPropertyToCopy(propertyDescriptor, defaultValue); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt index 85d858efa60..855e653e1f5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt @@ -33,7 +33,7 @@ private fun createModifierList(text: String, owner: JetModifierListOwner): JetMo return owner.addBefore(newModifierList, anchor) as JetModifierList } -internal fun addModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken) { +fun addModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken) { val modifierList = owner.modifierList if (modifierList == null) { createModifierList(modifier.value, owner) @@ -43,7 +43,7 @@ internal fun addModifier(owner: JetModifierListOwner, modifier: JetModifierKeywo } } -internal fun addAnnotationEntry(owner: JetModifierListOwner, annotationEntry: JetAnnotationEntry): JetAnnotationEntry { +fun addAnnotationEntry(owner: JetModifierListOwner, annotationEntry: JetAnnotationEntry): JetAnnotationEntry { val modifierList = owner.modifierList return if (modifierList == null) { createModifierList(annotationEntry.text, owner).annotationEntries.first() @@ -90,7 +90,7 @@ internal fun addModifier(modifierList: JetModifierList, modifier: JetModifierKey } } -internal fun removeModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken) { +fun removeModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken) { owner.getModifierList()?.let { it.getModifier(modifier)?.delete() if (it.firstChild == null) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/FileBasedPackageMemberDeclarationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/FileBasedPackageMemberDeclarationProvider.kt index c9d9eb272f7..4cd4958d412 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/FileBasedPackageMemberDeclarationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/FileBasedPackageMemberDeclarationProvider.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.storage.StorageManager -public class FileBasedPackageMemberDeclarationProvider internal constructor( +public class FileBasedPackageMemberDeclarationProvider( storageManager: StorageManager, private val fqName: FqName, private val factory: FileBasedDeclarationProviderFactory, diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt index 4cf52b34db0..1a4177aced5 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt @@ -27,7 +27,7 @@ import kotlin.reflect.jvm.internal.pcollections.HashPMap private var FOREIGN_K_CLASSES = HashPMap.empty() // This function is invoked on each reflection access to Java classes, properties, etc. Performance is critical here. -internal fun foreignKotlinClass(jClass: Class): KClassImpl { +fun foreignKotlinClass(jClass: Class): KClassImpl { val name = jClass.getName() val cached = FOREIGN_K_CLASSES[name] if (cached is WeakReference<*>) {