diff --git a/analysis/analysis-internal-utils/src/org/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter.kt b/analysis/analysis-internal-utils/src/org/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter.kt index f99b963d754..bcda3744fa7 100644 --- a/analysis/analysis-internal-utils/src/org/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter.kt +++ b/analysis/analysis-internal-utils/src/org/jetbrains/kotlin/analysis/utils/printer/PrettyPrinter.kt @@ -131,6 +131,7 @@ public class PrettyPrinter(public val indentSize: Int = 2) : Appendable { } public inline fun checkIfPrinted(render: () -> Unit): Boolean { + contract { callsInPlace(render, InvocationKind.EXACTLY_ONCE) } val initialSize = builder.length render() return initialSize != builder.length diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/internal/JvmExtensionNodes.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/internal/JvmExtensionNodes.kt index f10c2c3b6a2..86b8e300f37 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/internal/JvmExtensionNodes.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/internal/JvmExtensionNodes.kt @@ -56,7 +56,7 @@ internal class JvmClassExtension : JvmClassExtensionVisitor(), KmClassExtension override fun accept(visitor: KmClassExtensionVisitor) { require(visitor is JvmClassExtensionVisitor) localDelegatedProperties.forEach { - @Suppress("INVISIBLE_MEMBER") // getter.flags + @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") // getter.flags visitor.visitLocalDelegatedProperty(it.flags, it.name, it.getter.flags, it.setterFlags)?.let(it::accept) } moduleName?.let(visitor::visitModuleName) @@ -80,7 +80,7 @@ internal class JvmPackageExtension : JvmPackageExtensionVisitor(), KmPackageExte override fun accept(visitor: KmPackageExtensionVisitor) { require(visitor is JvmPackageExtensionVisitor) localDelegatedProperties.forEach { - @Suppress("INVISIBLE_MEMBER") // getter.flags + @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") // getter.flags visitor.visitLocalDelegatedProperty(it.flags, it.name, it.getter.flags, it.setterFlags)?.let(it::accept) } moduleName?.let(visitor::visitModuleName) diff --git a/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/FlagDelegatesTest.kt b/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/FlagDelegatesTest.kt index 3563e032a13..1c189557ba2 100644 --- a/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/FlagDelegatesTest.kt +++ b/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/FlagDelegatesTest.kt @@ -100,9 +100,10 @@ class FlagDelegatesTest { field = param.takeLast(0) } - var noinlineModifierVar: String = "" + inline var noinlineModifierVar: () -> String + get() = { "" } set(noinline param) { - field = param.takeLast(0) + param() } } @@ -154,7 +155,7 @@ class FlagDelegatesTest { assertEquals("param", it?.name) } - assertProperty("noinlineModifierVar", true, false, true) { + assertProperty("noinlineModifierVar", true, true, true) { assertEquals("param", it?.name) assertEquals(true, it?.isNoinline) }