FIR checker: introduce member function checker

This commit is contained in:
Jinseong Jeon
2021-01-14 11:49:57 -08:00
committed by Mikhail Glukhikh
parent 5594af0d70
commit 39df3e2b0a
20 changed files with 102 additions and 51 deletions
@@ -23,10 +23,10 @@ abstract class MyAbstractClass() {
abstract val e3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
//methods
fun f()
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun f()<!>
fun g() {}
abstract fun h()
abstract fun j() {}
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
//property accessors
var i: Int abstract get abstract set
+3 -3
View File
@@ -23,10 +23,10 @@ class MyClass() {
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val e3: Int = 0; get() = a
//methods
fun f()
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun f()<!>
fun g() {}
abstract fun h()
abstract fun j() {}
<!ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS!>abstract<!> fun h()
<!ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS, ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
//property accessors
var i: Int abstract get abstract set
+1 -1
View File
@@ -26,7 +26,7 @@ interface MyTrait {
fun f()
fun g() {}
abstract fun h()
abstract fun j() {}
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
//property accessors
var i: Int abstract get abstract set
@@ -13,5 +13,5 @@ interface T {
}
class A {
final fun foo()
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>final fun foo()<!>
}
@@ -25,10 +25,10 @@ enum class MyEnum() {
abstract val e3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
//methods
fun f()
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun f()<!>
fun g() {}
abstract fun h()
abstract fun j() {}
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
//property accessors
var i: Int abstract get abstract set
@@ -6,7 +6,7 @@ interface My {
final val y: Int
final val yy: Int
get() = 1
private fun foo(): Int
<!PRIVATE_FUNCTION_WITH_NO_BODY!>private<!> fun foo(): Int
// ok
private fun bar() = 42
}
@@ -1,23 +0,0 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
interface Foo {
fun foo()
}
expect class NonAbstractClass : Foo {
abstract fun bar()
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val baz: Int
abstract override fun foo()
}
expect abstract class AbstractClass : Foo {
abstract fun bar()
abstract val baz: Int
abstract override fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
@@ -3,7 +3,7 @@
// FILE: common.kt
class Foo {
expect fun bar(): String
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>expect fun bar(): String<!>
}
// MODULE: m1-jvm(m1-common)
@@ -9,7 +9,7 @@ class Outer expect constructor() {
expect init {}
expect fun foo()
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>expect fun foo()<!>
expect val bar: Int
}
@@ -16,5 +16,5 @@ interface Test<in I, out O> {
fun internal_fun(i: O) : I
public fun public_fun(i: O) : I
protected fun protected_fun(i: O) : I
private fun private_fun(i: O) : I
<!PRIVATE_FUNCTION_WITH_NO_BODY!>private<!> fun private_fun(i: O) : I
}