aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/test/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/base/src/test/kotlin')
-rw-r--r--plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt b/plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt
index cd55a001..1e0a5404 100644
--- a/plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt
+++ b/plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt
@@ -108,6 +108,31 @@ class FunctionalTypeConstructorsSignatureTest : BaseAbstractTest() {
}
}
+ @Test
+ fun `kotlin syntactic sugar function with param name of generic and functional type`() {
+ val source = source("""
+ | @Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE)
+ | @MustBeDocumented
+ | annotation class Fancy
+ |
+ | fun <T> f(): (param1: T, param2: @Fancy ()->Unit) -> String "
+ """.trimIndent())
+ val writerPlugin = TestOutputWriterPlugin()
+
+ testInline(
+ source, configuration, pluginOverrides = listOf(writerPlugin)
+ ) {
+ renderingStage = { _, _ ->
+ writerPlugin.writer.renderedContent("root/example/index.html").lastSignature().match(
+ "fun <", A("T"), "> ",
+ A("f"), "(): (param1:", A("T"),
+ ", param2: ", Span("@", A("Fancy")), " () -> ", A("Unit"),
+ ") -> ", A("String"), Span(),
+ ignoreSpanWithTokenStyle = true
+ )
+ }
+ }
+ }
@Disabled // Add coroutines on classpath and get proper import
@Test
fun `kotlin normal suspendable function`() {