From 5d081efe6057770134923684874e6e4dc6e775d7 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Thu, 4 Jul 2019 10:51:51 +0300 Subject: [PATCH] Uast: tests for no implicit returns in lambdas (KT-32370) --- plugins/uast-kotlin/testData/LambdaReturn.kt | 8 +++++ .../uast-kotlin/testData/LambdaReturn.log.txt | 34 +++++++++++++++++++ .../testData/LambdaReturn.render.txt | 8 +++++ 3 files changed, 50 insertions(+) diff --git a/plugins/uast-kotlin/testData/LambdaReturn.kt b/plugins/uast-kotlin/testData/LambdaReturn.kt index c8ac6df4115..168252fe080 100644 --- a/plugins/uast-kotlin/testData/LambdaReturn.kt +++ b/plugins/uast-kotlin/testData/LambdaReturn.kt @@ -37,6 +37,14 @@ fun foo() { it + b } + val x: () -> Unit = { + val (a, b) = listOf(1, 2) + } + + val y: () -> Unit = { + listOf(1) + } + } private inline fun bar(lmbd: (Int) -> Int) { diff --git a/plugins/uast-kotlin/testData/LambdaReturn.log.txt b/plugins/uast-kotlin/testData/LambdaReturn.log.txt index ebcadc19e70..27fdd20f748 100644 --- a/plugins/uast-kotlin/testData/LambdaReturn.log.txt +++ b/plugins/uast-kotlin/testData/LambdaReturn.log.txt @@ -96,6 +96,40 @@ UFile (package = org.jetbrains.uast.kotlin) UBinaryExpression (operator = +) USimpleNameReferenceExpression (identifier = it) USimpleNameReferenceExpression (identifier = b) + UDeclarationsExpression + ULocalVariable (name = x) + ULambdaExpression + UBlockExpression + UDeclarationsExpression + ULocalVariable (name = vardbcd0724) + UAnnotation (fqName = org.jetbrains.annotations.NotNull) + UCallExpression (kind = UastCallKind(name='method_call'), argCount = 2)) + UIdentifier (Identifier (listOf)) + USimpleNameReferenceExpression (identifier = listOf, resolvesTo = null) + ULiteralExpression (value = 1) + ULiteralExpression (value = 2) + ULocalVariable (name = a) + UAnnotation (fqName = org.jetbrains.annotations.NotNull) + UQualifiedReferenceExpression + USimpleNameReferenceExpression (identifier = vardbcd0724) + UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) + UIdentifier (Identifier (component1)) + USimpleNameReferenceExpression (identifier = , resolvesTo = null) + ULocalVariable (name = b) + UAnnotation (fqName = org.jetbrains.annotations.NotNull) + UQualifiedReferenceExpression + USimpleNameReferenceExpression (identifier = vardbcd0724) + UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) + UIdentifier (Identifier (component2)) + USimpleNameReferenceExpression (identifier = , resolvesTo = null) + UDeclarationsExpression + ULocalVariable (name = y) + ULambdaExpression + UBlockExpression + UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1)) + UIdentifier (Identifier (listOf)) + USimpleNameReferenceExpression (identifier = listOf, resolvesTo = null) + ULiteralExpression (value = 1) UAnnotationMethod (name = bar) UParameter (name = lmbd) UAnnotation (fqName = org.jetbrains.annotations.NotNull) diff --git a/plugins/uast-kotlin/testData/LambdaReturn.render.txt b/plugins/uast-kotlin/testData/LambdaReturn.render.txt index fc96cb4cd9c..b624dba84bd 100644 --- a/plugins/uast-kotlin/testData/LambdaReturn.render.txt +++ b/plugins/uast-kotlin/testData/LambdaReturn.render.txt @@ -29,6 +29,14 @@ public final class LambdaReturnKt { var b: int = 1 return it + b }) + var x: kotlin.jvm.functions.Function0 = { + @org.jetbrains.annotations.NotNull var vardbcd0724: = listOf(1, 2) + @org.jetbrains.annotations.NotNull var a: int = vardbcd0724.() + @org.jetbrains.annotations.NotNull var b: int = vardbcd0724.() + } + var y: kotlin.jvm.functions.Function0 = { + listOf(1) + } } private static final fun bar(@org.jetbrains.annotations.NotNull lmbd: kotlin.jvm.functions.Function1) : void { invoke(1)