Postpone companion object field visibility
Have to reconsider this issue because of interface companion objects.
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
// !LANGUAGE: +ProperVisibilityForCompanionObjectInstanceField
|
||||
// IGNORE_BACKEND: JS, JS_IR, JVM_IR
|
||||
|
||||
inline fun on(body: () -> Any) = body().toString()
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
inline fun on(body: () -> Any) = body().toString()
|
||||
|
||||
class A {
|
||||
fun test() = foo()
|
||||
|
||||
private companion object {
|
||||
private fun foo() = on { this }
|
||||
|
||||
override fun toString() = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun box() = A().test()
|
||||
@@ -0,0 +1,16 @@
|
||||
// LANGUAGE_VERSION: 1.3
|
||||
|
||||
inline fun on(body: () -> Any) = body().toString()
|
||||
|
||||
class A {
|
||||
fun test() = foo()
|
||||
|
||||
private companion object {
|
||||
private fun foo() = on { this }
|
||||
|
||||
override fun toString() = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun box() = A().test()
|
||||
@@ -1,5 +1,4 @@
|
||||
// !LANGUAGE: +ProperVisibilityForCompanionObjectInstanceField
|
||||
// IGNORE_BACKEND: JS, JS_IR, JVM_IR
|
||||
|
||||
interface A {
|
||||
fun test() = ok()
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
interface A {
|
||||
fun test() = ok()
|
||||
|
||||
private companion object {
|
||||
fun ok() = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
class C : A
|
||||
|
||||
fun box() = C().test()
|
||||
@@ -0,0 +1,13 @@
|
||||
// LANGUAGE_VERSION: 1.3
|
||||
|
||||
interface A {
|
||||
fun test() = ok()
|
||||
|
||||
private companion object {
|
||||
fun ok() = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
class C : A
|
||||
|
||||
fun box() = C().test()
|
||||
@@ -0,0 +1,17 @@
|
||||
// LANGUAGE_VERSION: 1.3
|
||||
|
||||
open class TestProtectedCompanionInClass {
|
||||
protected companion object
|
||||
}
|
||||
|
||||
class TestInternalCompanionInClass {
|
||||
internal companion object
|
||||
}
|
||||
|
||||
class TestPrivateCompanionInClass {
|
||||
private companion object
|
||||
}
|
||||
|
||||
interface TestPrivateCompanionInInterface {
|
||||
private companion object
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
@kotlin.Metadata
|
||||
public final class TestInternalCompanionInClass$Companion {
|
||||
inner class TestInternalCompanionInClass$Companion
|
||||
private method <init>(): void
|
||||
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TestInternalCompanionInClass {
|
||||
public final static field Companion: TestInternalCompanionInClass$Companion
|
||||
inner class TestInternalCompanionInClass$Companion
|
||||
static method <clinit>(): void
|
||||
public method <init>(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
final class TestPrivateCompanionInClass$Companion {
|
||||
inner class TestPrivateCompanionInClass$Companion
|
||||
private method <init>(): void
|
||||
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TestPrivateCompanionInClass {
|
||||
public deprecated final static @java.lang.Deprecated field Companion: TestPrivateCompanionInClass$Companion
|
||||
inner class TestPrivateCompanionInClass$Companion
|
||||
static method <clinit>(): void
|
||||
public method <init>(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
final class TestPrivateCompanionInInterface$Companion {
|
||||
synthetic final static field $$INSTANCE: TestPrivateCompanionInInterface$Companion
|
||||
inner class TestPrivateCompanionInInterface$Companion
|
||||
static method <clinit>(): void
|
||||
private method <init>(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface TestPrivateCompanionInInterface {
|
||||
public deprecated final static @java.lang.Deprecated field Companion: TestPrivateCompanionInInterface$Companion
|
||||
inner class TestPrivateCompanionInInterface$Companion
|
||||
static method <clinit>(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TestProtectedCompanionInClass$Companion {
|
||||
inner class TestProtectedCompanionInClass$Companion
|
||||
private method <init>(): void
|
||||
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public class TestProtectedCompanionInClass {
|
||||
public deprecated final static @java.lang.Deprecated field Companion: TestProtectedCompanionInClass$Companion
|
||||
inner class TestProtectedCompanionInClass$Companion
|
||||
static method <clinit>(): void
|
||||
public method <init>(): void
|
||||
}
|
||||
+20
@@ -15123,11 +15123,31 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv12.kt")
|
||||
public void testKt27117_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv13.kt")
|
||||
public void testKt27117_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121.kt")
|
||||
public void testKt27121() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv12.kt")
|
||||
public void testKt27121_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv13.kt")
|
||||
public void testKt27121_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt")
|
||||
public void testPrivateCompanionObjectAccessedFromAnonymousObjectInNestedClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt");
|
||||
|
||||
+5
@@ -48,6 +48,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/companionObjectVisibility_before.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("companionObjectVisibility_lv13.kt")
|
||||
public void testCompanionObjectVisibility_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/companionObjectVisibility_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("coroutineContextIntrinsic.kt")
|
||||
public void testCoroutineContextIntrinsic_1_2() throws Exception {
|
||||
runTestWithPackageReplacement("compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic.kt", "kotlin.coroutines.experimental");
|
||||
|
||||
+20
@@ -15123,11 +15123,31 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv12.kt")
|
||||
public void testKt27117_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv13.kt")
|
||||
public void testKt27117_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121.kt")
|
||||
public void testKt27121() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv12.kt")
|
||||
public void testKt27121_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv13.kt")
|
||||
public void testKt27121_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt")
|
||||
public void testPrivateCompanionObjectAccessedFromAnonymousObjectInNestedClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt");
|
||||
|
||||
+20
@@ -15128,11 +15128,31 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv12.kt")
|
||||
public void testKt27117_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv13.kt")
|
||||
public void testKt27117_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121.kt")
|
||||
public void testKt27121() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv12.kt")
|
||||
public void testKt27121_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv13.kt")
|
||||
public void testKt27121_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt")
|
||||
public void testPrivateCompanionObjectAccessedFromAnonymousObjectInNestedClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt");
|
||||
|
||||
@@ -62,7 +62,6 @@ enum class LanguageFeature(
|
||||
ProhibitDataClassesOverridingCopy(KOTLIN_1_3, kind = BUG_FIX),
|
||||
RestrictionOfWrongAnnotationsWithUseSiteTargetsOnTypes(KOTLIN_1_3, kind = BUG_FIX),
|
||||
ProhibitInnerClassesOfGenericClassExtendingThrowable(KOTLIN_1_3, kind = BUG_FIX),
|
||||
ProperVisibilityForCompanionObjectInstanceField(KOTLIN_1_3, kind = BUG_FIX),
|
||||
ProperForInArrayLoopRangeVariableAssignmentSemantic(KOTLIN_1_3, kind = BUG_FIX),
|
||||
NestedClassesInAnnotations(KOTLIN_1_3),
|
||||
JvmStaticInInterface(KOTLIN_1_3, kind = UNSTABLE_FEATURE),
|
||||
@@ -94,6 +93,8 @@ enum class LanguageFeature(
|
||||
RestrictReturnStatementTarget(KOTLIN_1_4, kind = BUG_FIX),
|
||||
NoConstantValueAttributeForNonConstVals(KOTLIN_1_4, kind = BUG_FIX),
|
||||
|
||||
ProperVisibilityForCompanionObjectInstanceField(sinceVersion = null, kind = BUG_FIX),
|
||||
|
||||
ProperIeee754Comparisons(sinceVersion = null, defaultState = State.DISABLED, kind = BUG_FIX),
|
||||
|
||||
// Experimental features
|
||||
|
||||
+20
@@ -13308,11 +13308,31 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv12.kt")
|
||||
public void testKt27117_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv13.kt")
|
||||
public void testKt27117_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121.kt")
|
||||
public void testKt27121() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv12.kt")
|
||||
public void testKt27121_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv13.kt")
|
||||
public void testKt27121_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt")
|
||||
public void testPrivateCompanionObjectAccessedFromAnonymousObjectInNestedClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt");
|
||||
|
||||
+20
@@ -14353,11 +14353,31 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv12.kt")
|
||||
public void testKt27117_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27117_lv13.kt")
|
||||
public void testKt27117_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27117_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121.kt")
|
||||
public void testKt27121() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv12.kt")
|
||||
public void testKt27121_lv12() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv12.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt27121_lv13.kt")
|
||||
public void testKt27121_lv13() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/kt27121_lv13.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt")
|
||||
public void testPrivateCompanionObjectAccessedFromAnonymousObjectInNestedClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/objects/companionObjectAccess/privateCompanionObjectAccessedFromAnonymousObjectInNestedClass.kt");
|
||||
|
||||
Reference in New Issue
Block a user