diff options
Diffstat (limited to 'test-utils/testData/api/functionTypes.kt')
-rw-r--r-- | test-utils/testData/api/functionTypes.kt | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/test-utils/testData/api/functionTypes.kt b/test-utils/testData/api/functionTypes.kt new file mode 100644 index 00000000..69f8366f --- /dev/null +++ b/test-utils/testData/api/functionTypes.kt @@ -0,0 +1,72 @@ +/* + * Copyright 2021 Google LLC + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// WITH_RUNTIME +// TEST PROCESSOR: FunctionTypeProcessor +// EXPECTED: +// a: Function0 : true, false +// b: Function1 : true, false +// c: Function0 : true, false +// d: Function2 : true, false +// e: KFunction0 : true, false +// f: KSuspendFunction0 : false, true +// g: KFunction1 : true, false +// h: KSuspendFunction1 : false, true +// i: Function1 : true, false +// j: SuspendFunction1 : false, true +// k: SuspendFunction0 : false, true +// l: SuspendFunction1 : false, true +// m: SuspendFunction0 : false, true +// n: SuspendFunction2 : false, true +// o: KFunction0 : true, false +// p: KSuspendFunction0 : false, true +// vbar: KSuspendFunction0 : false, true +// vfoo: KFunction0 : true, false +// END + +@file:Suppress("Boolean", "Byte", "Int", "Short", "Double", "Float", "Unit", "Suppress", "C") + +class C { + fun foo(): Boolean = true + suspend fun bar(): Int = 0 + val vfoo = ::foo + val vbar = ::bar +} + +fun foo() = Unit +suspend fun bar() = Unit + +val a: () -> Unit = TODO() +val b: (Int) -> Unit = TODO() +val c: () -> Byte = TODO() +val d: (Short, Float) -> Double = TODO() + +val e = C().vfoo +val f = C().vbar +val g = C::foo +val h = C::bar + +val i: Int.() -> Boolean = TODO() +val j: suspend Boolean.() -> Int = TODO() + +val k: suspend () -> Unit = TODO() +val l: suspend (Int) -> Unit = TODO() +val m: suspend () -> Byte = TODO() +val n: suspend (Short, Float) -> Double = TODO() + +val o = ::foo +val p = ::bar |