aboutsummaryrefslogtreecommitdiff
path: root/test-utils/testData/api/functionTypes.kt
diff options
context:
space:
mode:
Diffstat (limited to 'test-utils/testData/api/functionTypes.kt')
-rw-r--r--test-utils/testData/api/functionTypes.kt72
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