// FILE: JavaClass.java public class JavaClass { public static Cls createFlexible() { return new Cls(); } } // FILE: test.kt class MemberInvokeOwner { operator fun invoke() {} } class Cls { fun testImplicitReceiver() { nullableExtensionProperty() } } val Cls.nullableExtensionProperty: MemberInvokeOwner? get() = null val Cls.extensionProperty: MemberInvokeOwner get() = TODO() fun testNullableReceiver(nullable: Cls?) { nullable?.extensionProperty() nullable.extensionProperty() } fun testNotNullableReceiver(notNullable: Cls) { notNullable.nullableExtensionProperty() notNullable?.extensionProperty() } fun testFlexibleReceiver() { val flexible = JavaClass.createFlexible() flexible.extensionProperty() flexible?.extensionProperty() flexible.nullableExtensionProperty() flexible?.nullableExtensionProperty() }