Fix AssertionError on overloading function with property in actual class

#KT-22352 Fixed
This commit is contained in:
Alexander Udalov
2018-02-05 19:29:41 +01:00
parent 56be83cdd3
commit 22595acbfd
10 changed files with 96 additions and 0 deletions
@@ -0,0 +1,15 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
expect class Foo {
val bar: String
}
// MODULE: m1-jvm(m1-common)
// FILE: jvm.kt
actual class Foo {
actual val bar = "bar"
fun bar() = bar
}
@@ -0,0 +1,22 @@
// -- Module: <m1-common> --
package
public final expect class Foo {
public expect final val bar: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
// -- Module: <m1-jvm> --
package
public final actual class Foo {
public constructor Foo()
public actual final val bar: kotlin.String = "bar"
public final fun bar(): kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,5 @@
package test
expect class Foo {
val bar: String
}
@@ -0,0 +1,5 @@
package test
actual class Foo {
actual fun bar(): String = ""
}
@@ -0,0 +1,22 @@
-- Common --
Exit code: OK
Output:
-- JVM --
Exit code: COMPILATION_ERROR
Output:
compiler/testData/multiplatform/classScopes/functionAndPropertyWithSameName/jvm.kt:3:14: error: actual class 'Foo' has no corresponding members for expected class members:
public expect final val bar: String
The following declaration is incompatible because callable kinds are different (function vs property):
public final actual fun bar(): String
actual class Foo {
^
compiler/testData/multiplatform/classScopes/functionAndPropertyWithSameName/jvm.kt:4:12: error: actual function 'bar' has no corresponding expected declaration
The following declaration is incompatible because callable kinds are different (function vs property):
public expect final val bar: String
actual fun bar(): String = ""
^