| // RUN_PIPELINE_TILL: FRONTEND | |
| // DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE | |
| fun test() = "OK" | |
| val prop = "OK" | |
| class Foo { | |
| fun test() = "OK" | |
| val prop = "OK" | |
| } | |
| object FooObject { | |
| fun test() = "OK" | |
| val prop = "OK" | |
| } | |
| inline fun default1(s : () -> String = {"OK"}) {} | |
| inline fun default2(s : () -> String = ::test) {} | |
| inline fun default3(s : () -> String = ::prop) {} | |
| inline fun default4(s : () -> String = FooObject::test) {} | |
| inline fun default5(s : () -> String = FooObject::prop) {} | |
| inline fun default6(s : (a: Foo) -> String = Foo::test) {} | |
| inline fun default7(s : (a: Foo) -> String = Foo::prop) {} | |
| val a = Foo() | |
| inline fun default8(s : () -> String = a::test) {} | |
| inline fun default9(s : () -> String = a::prop) {} | |
| inline fun default10(s : () -> String = <!INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE!>object : Function0<String><!> { | |
| override fun invoke(): String { | |
| return "FAIL" | |
| } | |
| }) {} | |
| abstract class Base { | |
| abstract fun foo(f: () -> Unit = { }) | |
| } | |
| class Derived : Base() { | |
| override final inline <!OVERRIDE_BY_INLINE!>fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>f: () -> Unit<!>)<!> { | |
| f() | |
| } | |
| } | |
| inline fun default11(s : () -> Derived = ::Derived) {} | |
| /* GENERATED_FIR_TAGS: anonymousObjectExpression, callableReference, classDeclaration, functionDeclaration, | |
| functionalType, inline, lambdaLiteral, objectDeclaration, operator, override, propertyDeclaration, stringLiteral */ |