FIR/UAST: commonize block and return expressions

This commit is contained in:
Jinseong Jeon
2021-05-26 22:55:12 -07:00
committed by Ilya Kirillov
parent 16b3d2110e
commit 1146f60db3
241 changed files with 1875 additions and 799 deletions
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.uast.kotlin
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.uast.UBlockExpression
import org.jetbrains.uast.UElement
abstract class KotlinAbstractUBlockExpression(
override val sourcePsi: KtBlockExpression,
givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UBlockExpression, KotlinUElementWithType {
override val expressions by lz {
sourcePsi.statements.map { baseResolveProviderService.baseKotlinConverter.convertOrEmpty(it, this) }
}
}
@@ -0,0 +1,32 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.psi.KtAnonymousInitializer
import org.jetbrains.uast.*
class KotlinLazyUBlockExpression(
override val uastParent: UElement?,
expressionProducer: (expressionParent: UElement) -> List<UExpression>
) : UBlockExpression {
override val psi: PsiElement? get() = null
override val javaPsi: PsiElement? get() = null
override val sourcePsi: PsiElement? get() = null
override val uAnnotations: List<UAnnotation> = emptyList()
override val expressions by lz { expressionProducer(this) }
companion object {
fun create(initializers: List<KtAnonymousInitializer>, uastParent: UElement): UBlockExpression {
val languagePlugin = uastParent.getLanguagePlugin()
return KotlinLazyUBlockExpression(uastParent) { expressionParent ->
initializers.map {
languagePlugin.convertOpt(it.body, expressionParent) ?: UastEmptyExpression(expressionParent)
}
}
}
}
}
@@ -0,0 +1,30 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiElement
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.UReturnExpression
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
class KotlinUImplicitReturnExpression(
givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UReturnExpression, KotlinUElementWithType, KotlinFakeUElement {
override val psi: PsiElement?
get() = null
override lateinit var returnExpression: UExpression
// Due to the lack of [psi], (lazily) delegate to the one in [returnExpression]
override val baseResolveProviderService: BaseKotlinUastResolveProviderService by lz {
(returnExpression as KotlinAbstractUElement).baseResolveProviderService
}
override fun unwrapToSourcePsi(): List<PsiElement> {
return returnExpression.toSourcePsiFakeAware()
}
}
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.uast.kotlin
import org.jetbrains.kotlin.psi.KtReturnExpression
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UReturnExpression
class KotlinUReturnExpression(
override val sourcePsi: KtReturnExpression,
givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UReturnExpression, KotlinUElementWithType {
override val returnExpression by lz {
baseResolveProviderService.baseKotlinConverter.convertOrNull(sourcePsi.returnedExpression, this)
}
}
@@ -10,10 +10,7 @@ import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.asJava.elements.FakeFileForLightClass
import org.jetbrains.kotlin.asJava.elements.KtLightElement
import org.jetbrains.kotlin.asJava.elements.KtLightMember
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtPsiUtil
import org.jetbrains.kotlin.psi.*
import org.jetbrains.uast.UDeclaration
import org.jetbrains.uast.UElement
import java.util.function.Supplier
@@ -45,3 +42,10 @@ fun KtExpression.unwrapBlockOrParenthesis(): KtExpression {
}
return innerExpression
}
fun KtElement.canAnalyze(): Boolean {
if (!isValid) return false
val containingFile = containingFile as? KtFile ?: return false // EA-114080, EA-113475, EA-134193
if (containingFile.doNotAnalyze != null) return false // To prevent exceptions during analysis
return true
}
@@ -7,10 +7,9 @@ package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.uast.DEFAULT_EXPRESSION_TYPES_LIST
import org.jetbrains.uast.DEFAULT_TYPES_LIST
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.uast.*
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
fun expressionTypes(requiredType: Class<out UElement>?) =
@@ -54,3 +53,16 @@ fun UElement.toSourcePsiFakeAware(): List<PsiElement> {
if (this is KotlinFakeUElement) return this.unwrapToSourcePsi()
return listOfNotNull(this.sourcePsi)
}
fun wrapExpressionBody(function: UElement, bodyExpression: KtExpression): UExpression? = when (bodyExpression) {
!is KtBlockExpression -> {
KotlinLazyUBlockExpression(function) { block ->
val implicitReturn = KotlinUImplicitReturnExpression(block)
val uBody = function.getLanguagePlugin().convertElement(bodyExpression, implicitReturn) as? UExpression
?: return@KotlinLazyUBlockExpression emptyList()
listOf(implicitReturn.apply { returnExpression = uBody })
}
}
else -> function.getLanguagePlugin().convertElement(bodyExpression, function) as? UExpression
}
@@ -268,6 +268,11 @@ internal object FirKotlinConverter : BaseKotlinConverter {
}
is KtCollectionLiteralExpression -> expr<UCallExpression>(build(::KotlinUCollectionLiteralExpression))
is KtConstantExpression -> expr<ULiteralExpression>(build(::KotlinULiteralExpression))
is KtBlockExpression -> expr<UBlockExpression> {
// TODO: differentiate lambda
FirKotlinUBlockExpression(expression, givenParent)
}
is KtReturnExpression -> expr<UReturnExpression>(build(::KotlinUReturnExpression))
else -> expr<UExpression>(build(::UnknownKotlinExpression))
}
}
@@ -30,6 +30,8 @@ open class FirKotlinUMethod(
override fun getSourceElement() = sourcePsi
private val kotlinOrigin = getKotlinMemberOrigin(psi.originalElement) ?: sourcePsi
override val uAnnotations: List<UAnnotation>
get() {
// TODO: Not yet implemented
@@ -65,6 +67,7 @@ open class FirKotlinUMethod(
}
override val uastBody: UExpression? by lz {
if (kotlinOrigin?.canAnalyze() != true) return@lz null // EA-137193
val bodyExpression = when (sourcePsi) {
is KtFunction -> sourcePsi.bodyExpression
is KtPropertyAccessor -> sourcePsi.bodyExpression
@@ -76,7 +79,7 @@ open class FirKotlinUMethod(
else -> null
} ?: return@lz null
UastFacade.findPlugin(this)?.convertElement(bodyExpression, this) as? UExpression
wrapExpressionBody(this, bodyExpression)
}
override val returnTypeReference: UTypeReferenceExpression? by lz {
@@ -0,0 +1,16 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.uast.kotlin
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.uast.UElement
class FirKotlinUBlockExpression(
override val sourcePsi: KtBlockExpression,
givenParent: UElement?
) : KotlinAbstractUBlockExpression(sourcePsi, givenParent) {
// TODO: either override convertParent or commonize it
}
@@ -1,7 +1,13 @@
UFile (package = declaration)
UClass (name = Utils)
UMethod (name = foo)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = buzz)
UParameter (name = $this$buzz)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
UPolyadicExpression (operator = +)
[!] UnknownKotlinExpression (THIS_EXPRESSION)
ULiteralExpression (value = "... zzz...")
@@ -1,6 +1,10 @@
package declaration
public final class Utils {
public static final fun foo() : int = "not-yet-compile-time-constant"
public static final fun buzz($this$buzz: java.lang.String) : java.lang.String = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : int {
return "not-yet-compile-time-constant"
}
public static final fun buzz($this$buzz: java.lang.String) : java.lang.String {
return [!] UnknownKotlinExpression (THIS_EXPRESSION) + "... zzz..."
}
}
@@ -6,7 +6,9 @@ UFile (package = )
[!] UnknownKotlinExpression (OBJECT_LITERAL)
UMethod (name = getTopRunnable)
UMethod (name = main)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UClass (name = RunnableManager)
UField (name = INSTANCE)
UField (name = tasks)
@@ -15,6 +17,8 @@ UFile (package = )
UMethod (name = getTasks)
UMethod (name = register)
UParameter (name = runnable)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = runAll)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (FOR)
@@ -4,7 +4,10 @@ import java.lang.Thread
public final class ObjectsKt {
private static final var topRunnable: java.lang.Runnable = [!] UnknownKotlinExpression (OBJECT_LITERAL)
public static final fun getTopRunnable() : java.lang.Runnable = UastEmptyExpression
public static final fun main() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun main() : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
}
public final class RunnableManager {
@@ -12,6 +15,10 @@ public final class RunnableManager {
private final var tasks: java.util.List<java.lang.Runnable> = [!] UnknownKotlinExpression (CALL_EXPRESSION)
private fun RunnableManager() = UastEmptyExpression
public final fun getTasks() : java.util.List<java.lang.Runnable> = UastEmptyExpression
public final fun register(runnable: java.lang.Runnable) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun runAll() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun register(runnable: java.lang.Runnable) : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public final fun runAll() : void {
[!] UnknownKotlinExpression (FOR)
}
}
@@ -1,7 +1,15 @@
UFile (package = )
UClass (name = AnnotatedExpressionsKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
UMethod (name = annotatedSwitch)
UParameter (name = str)
[!] UnknownKotlinExpression (WHEN)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (WHEN)
@@ -1,4 +1,13 @@
public final class AnnotatedExpressionsKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun annotatedSwitch(str: java.lang.String) : java.lang.Integer = [!] UnknownKotlinExpression (WHEN)
public static final fun foo() : void {
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (ANNOTATED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
}
public static final fun annotatedSwitch(str: java.lang.String) : java.lang.Integer {
return [!] UnknownKotlinExpression (WHEN)
}
}
@@ -1,13 +1,21 @@
UFile (package = )
UClass (name = AnnotationParametersKt)
UMethod (name = foo)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = fooWithArrLiteral)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = fooWithStrArrLiteral)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UClass (name = IntRange)
UMethod (name = from)
UMethod (name = to)
@@ -1,8 +1,16 @@
public final class AnnotationParametersKt {
public static final fun foo() : int = "not-yet-compile-time-constant"
public static final fun bar() : void = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun fooWithArrLiteral() : int = "not-yet-compile-time-constant"
public static final fun fooWithStrArrLiteral() : int = "not-yet-compile-time-constant"
public static final fun foo() : int {
return "not-yet-compile-time-constant"
}
public static final fun bar() : void {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
public static final fun fooWithArrLiteral() : int {
return "not-yet-compile-time-constant"
}
public static final fun fooWithStrArrLiteral() : int {
return "not-yet-compile-time-constant"
}
}
public abstract annotation IntRange {
@@ -3,6 +3,13 @@ UFile (package = )
UImportStatement (isOnDemand = false)
UClass (name = AnonymousKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
UMethod (name = withErr)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
@@ -2,6 +2,15 @@ import java.io.Closeable
import java.io.InputStream
public final class AnonymousKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun withErr() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : void {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
}
public static final fun withErr() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
}
@@ -1,4 +1,7 @@
UFile (package = )
UClass (name = AssertionKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
UReturnExpression
[!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
@@ -1,3 +1,6 @@
public final class AssertionKt {
public static final fun foo() : java.lang.String = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : java.lang.String {
[!] UnknownKotlinExpression (PROPERTY)
return [!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
}
}
@@ -1,6 +1,26 @@
UFile (package = )
UClass (name = BitwiseKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
@@ -1,4 +1,24 @@
public final class BitwiseKt {
public static final fun foo() : int = [!] UnknownKotlinExpression (BLOCK)
public static final fun bar() : long = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : int {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
public static final fun bar() : long {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
@@ -2,4 +2,5 @@ UFile (package = )
UClass (name = BrokenMethodKt)
UMethod (name = main)
UParameter (name = args)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CLASS)
@@ -1,3 +1,5 @@
public final class BrokenMethodKt {
public static final fun main(args: java.lang.String[]) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun main(args: java.lang.String[]) : void {
[!] UnknownKotlinExpression (CLASS)
}
}
@@ -2,7 +2,9 @@ UFile (package = )
UClass (name = ConstructorDelegateKt)
UMethod (name = createBase)
UParameter (name = i)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UClass (name = Base)
UMethod (name = print)
UClass (name = BaseImpl)
@@ -11,7 +13,8 @@ UFile (package = )
UParameter (name = x)
UMethod (name = getX)
UMethod (name = print)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UClass (name = Derived)
UMethod (name = Derived)
UParameter (name = b)
@@ -1,5 +1,7 @@
public final class ConstructorDelegateKt {
public static final fun createBase(i: int) : Base = [!] UnknownKotlinExpression (BLOCK)
public static final fun createBase(i: int) : Base {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
}
public abstract interface Base {
@@ -10,7 +12,9 @@ public final class BaseImpl : null {
private final var x: int
public fun BaseImpl(x: int) = UastEmptyExpression
public final fun getX() : int = UastEmptyExpression
public fun print() : void = [!] UnknownKotlinExpression (BLOCK)
public fun print() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
}
public final class Derived : null, null {
@@ -26,10 +26,12 @@ UFile (package = )
UField (name = a)
UMethod (name = AWithSecondary)
UParameter (name = i)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UMethod (name = AWithSecondary)
UParameter (name = s)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UMethod (name = getA)
UMethod (name = setA)
UParameter (name = value)
@@ -37,10 +39,14 @@ UFile (package = )
UField (name = a)
UMethod (name = AWithSecondaryInit)
UParameter (name = i)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UMethod (name = AWithSecondaryInit)
UParameter (name = s)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = getA)
UMethod (name = setA)
UParameter (name = value)
@@ -25,16 +25,26 @@ public final class AOnlyInit {
public final class AWithSecondary {
private var a: java.lang.String
public fun AWithSecondary(i: int) = [!] UnknownKotlinExpression (BLOCK)
public fun AWithSecondary(s: java.lang.String) = [!] UnknownKotlinExpression (BLOCK)
public fun AWithSecondary(i: int) {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
public fun AWithSecondary(s: java.lang.String) {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
public final fun getA() : java.lang.String = UastEmptyExpression
public final fun setA(value: java.lang.String) : void = UastEmptyExpression
}
public final class AWithSecondaryInit {
private var a: java.lang.String
public fun AWithSecondaryInit(i: int) = [!] UnknownKotlinExpression (BLOCK)
public fun AWithSecondaryInit(s: java.lang.String) = [!] UnknownKotlinExpression (BLOCK)
public fun AWithSecondaryInit(i: int) {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
public fun AWithSecondaryInit(s: java.lang.String) {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public final fun getA() : java.lang.String = UastEmptyExpression
public final fun setA(value: java.lang.String) : void = UastEmptyExpression
}
@@ -1,6 +0,0 @@
UFile (package = )
UClass (name = Foo)
UMethod (name = bar)
ULiteralExpression (value = "Hello!")
UClass (name = Baz)
UMethod (name = Baz)
@@ -5,4 +5,4 @@ UFile (package = )
UReturnExpression
ULiteralExpression (value = "Hello!")
UClass (name = Baz)
UMethod (name = Baz)
UMethod (name = Baz)
@@ -1,5 +1,7 @@
public abstract interface Foo {
public fun bar() : java.lang.String = "Hello!"
public fun bar() : java.lang.String {
return "Hello!"
}
}
public final class Baz : null {
@@ -5,4 +5,4 @@ UFile (package = )
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = foo)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,3 +1,4 @@
public final class DefaultParameterValuesKt {
public static final fun foo(a: int, foo: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo(a: int, foo: java.lang.String) : void {
}
}
@@ -2,4 +2,4 @@ UFile (package = test.pkg)
UClass (name = Test)
UMethod (name = Test)
UMethod (name = test1)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -2,5 +2,6 @@ package test.pkg
public final class Test {
public fun Test() = UastEmptyExpression
public final fun test1() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun test1() : void {
}
}
@@ -2,4 +2,6 @@ UFile (package = )
UClass (name = DestructuringDeclarationKt)
UMethod (name = foo)
UParameter (name = data)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DESTRUCTURING_DECLARATION)
[!] UnknownKotlinExpression (DESTRUCTURING_DECLARATION)
@@ -1,3 +1,6 @@
public final class DestructuringDeclarationKt {
public static final fun foo(data: java.lang.Object) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo(data: java.lang.Object) : void {
[!] UnknownKotlinExpression (DESTRUCTURING_DECLARATION)
[!] UnknownKotlinExpression (DESTRUCTURING_DECLARATION)
}
}
@@ -2,8 +2,14 @@ UFile (package = )
UClass (name = ElvisKt)
UMethod (name = foo)
UParameter (name = bar)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = baz)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
@@ -1,5 +1,11 @@
public final class ElvisKt {
public static final fun foo(bar: java.lang.String) : java.lang.String = "not-yet-compile-time-constant"
public static final fun bar() : int = "not-yet-compile-time-constant"
public static final fun baz() : java.lang.String = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo(bar: java.lang.String) : java.lang.String {
return "not-yet-compile-time-constant"
}
public static final fun bar() : int {
return "not-yet-compile-time-constant"
}
public static final fun baz() : java.lang.String {
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
@@ -2,7 +2,9 @@ UFile (package = )
UClass (name = ElvisTypeKt)
UMethod (name = foo)
UParameter (name = text)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = bar)
UParameter (name = o)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,4 +1,7 @@
public final class ElvisTypeKt {
public static final fun foo(text: java.lang.String) : void = [!] UnknownKotlinExpression (CALL_EXPRESSION)
public static final fun bar(o: java.lang.Object) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo(text: java.lang.String) : void {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun bar(o: java.lang.Object) : void {
}
}
@@ -1,4 +1,5 @@
UFile (package = )
UClass (name = IfStatementKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
@@ -1,3 +1,5 @@
public final class IfStatementKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
}
@@ -1,4 +1,8 @@
UFile (package = )
UClass (name = InKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
@@ -1,3 +1,7 @@
public final class InKt {
public static final fun foo() : boolean = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : boolean {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
@@ -1,7 +1,11 @@
UFile (package = )
UClass (name = InferenceInsideUnresolvedConstructorKt)
UMethod (name = getBar)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = id)
UParameter (name = x)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
@@ -1,4 +1,8 @@
public final class InferenceInsideUnresolvedConstructorKt {
public static final fun getBar() : java.lang.Object = [!] UnknownKotlinExpression (CALL_EXPRESSION)
public static final fun id(x: T) : T = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun getBar() : java.lang.Object {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun id(x: T) : T {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
}
@@ -10,8 +10,12 @@ UFile (package = )
UMethod (name = getA)
UMethod (name = getB)
UMethod (name = getAPlusB)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UClass (name = Baz)
UMethod (name = Baz)
UMethod (name = doNothing)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
@@ -6,10 +6,14 @@ public final class Foo {
public fun Bar(a: int, b: int) = UastEmptyExpression
public final fun getA() : int = UastEmptyExpression
public final fun getB() : int = UastEmptyExpression
public final fun getAPlusB() : int = [!] UnknownKotlinExpression (BINARY_EXPRESSION)
public final fun getAPlusB() : int {
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
public static final class Baz {
public fun Baz() = UastEmptyExpression
public final fun doNothing() : void = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public final fun doNothing() : void {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
}
}
}
@@ -2,6 +2,7 @@ UFile (package = )
UClass (name = InnerNonFixedTypeVariableKt)
UMethod (name = test)
UParameter (name = list)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UClass (name = Some)
UMethod (name = Some)
@@ -1,5 +1,7 @@
public final class InnerNonFixedTypeVariableKt {
public static final fun test(list: java.util.List<? extends java.lang.Object>) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun test(list: java.util.List<? extends java.lang.Object>) : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
}
public final class Some {
@@ -1,4 +1,12 @@
UFile (package = org.jetbrains.uast.kotlin)
UClass (name = LambdaReturnKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
@@ -1,5 +1,14 @@
package org.jetbrains.uast.kotlin
public final class LambdaReturnKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : void {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
}
}
@@ -2,9 +2,14 @@ UFile (package = )
UImportStatement (isOnDemand = false)
UClass (name = LambdasKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = doSelectItem)
UParameter (name = selectItemFunction)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = lambdaInPlaceCall)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (WHILE)
@@ -1,7 +1,15 @@
import java.util.stream.Stream
public final class LambdasKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun doSelectItem(selectItemFunction: kotlin.jvm.functions.Function0<? extends kotlin.Unit>) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun lambdaInPlaceCall() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public static final fun doSelectItem(selectItemFunction: kotlin.jvm.functions.Function0<? extends kotlin.Unit>) : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun lambdaInPlaceCall() : void {
[!] UnknownKotlinExpression (WHILE)
}
}
@@ -1,4 +1,10 @@
UFile (package = )
UClass (name = LocalDeclarationsKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CLASS)
[!] UnknownKotlinExpression (FUN)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (FUN)
UReturnExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
@@ -1,3 +1,9 @@
public final class LocalDeclarationsKt {
public static final fun foo() : boolean = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : boolean {
[!] UnknownKotlinExpression (CLASS)
[!] UnknownKotlinExpression (FUN)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (FUN)
return [!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
@@ -1,5 +1,6 @@
UFile (package = )
UClass (name = LocalVariableWithAnnotationKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
UClass (name = TestAnnotation)
@@ -1,5 +1,7 @@
public final class LocalVariableWithAnnotationKt {
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
}
public abstract annotation TestAnnotation {
@@ -6,4 +6,4 @@ UFile (package = )
UClass (name = Foo)
UMethod (name = Foo)
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -5,5 +5,6 @@ public final class MethodReferenceKt {
public final class Foo {
public fun Foo() = UastEmptyExpression
public final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun bar() : void {
}
}
@@ -3,7 +3,7 @@ UFile (package = )
UField (name = xyzzy)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UMethod (name = getXyzzy)
UClass (name = Foo)
UMethod (name = Foo)
@@ -1,6 +1,7 @@
public final class NameContainingFileKt {
private static final var xyzzy: int = "not-yet-compile-time-constant"
public static final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun bar() : void {
}
public static final fun getXyzzy() : int = UastEmptyExpression
}
@@ -2,11 +2,15 @@ UFile (package = )
UClass (name = NonTrivialIdentifiersKt)
UMethod (name = main)
UParameter (name = a)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UClass (name = A)
UMethod (name = A)
UMethod (name = invoke)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = invoke)
UParameter (name = f)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,9 +1,16 @@
public final class NonTrivialIdentifiersKt {
public static final fun main(a: A) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun main(a: A) : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
}
public final class A {
public fun A() = UastEmptyExpression
public final fun invoke() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun invoke(f: kotlin.jvm.functions.Function0<? extends kotlin.Unit>) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun invoke() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public final fun invoke(f: kotlin.jvm.functions.Function0<? extends kotlin.Unit>) : void {
}
}
@@ -3,29 +3,40 @@ UFile (package = )
UMethod (name = global)
UParameter (name = a)
UParameter (name = b)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UMethod (name = withDefault)
UParameter (name = c)
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = d)
ULiteralExpression (value = "aaa")
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UMethod (name = withReceiver)
UParameter (name = $this$withReceiver)
UParameter (name = a)
UParameter (name = b)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UMethod (name = call)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = objectLiteral)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (OBJECT_LITERAL)
UClass (name = A)
UMethod (name = A)
UMethod (name = with2Receivers)
UParameter (name = $this$with2Receivers)
UParameter (name = a)
UParameter (name = b)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UClass (name = Parent)
UMethod (name = Parent)
UParameter (name = a)
@@ -1,14 +1,31 @@
public final class ParametersDisorderKt {
public static final fun global(a: int, b: float) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun withDefault(c: int, d: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun withReceiver($this$withReceiver: java.lang.String, a: int, b: float) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun call() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun objectLiteral() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun global(a: int, b: float) : void {
}
public static final fun withDefault(c: int, d: java.lang.String) : void {
}
public static final fun withReceiver($this$withReceiver: java.lang.String, a: int, b: float) : void {
}
public static final fun call() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun objectLiteral() : void {
[!] UnknownKotlinExpression (OBJECT_LITERAL)
}
}
public final class A {
public fun A() = UastEmptyExpression
public final fun with2Receivers($this$with2Receivers: java.lang.String, a: int, b: float) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun with2Receivers($this$with2Receivers: java.lang.String, a: int, b: float) : void {
}
}
public class Parent {
@@ -7,4 +7,4 @@ UFile (package = )
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = flag)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,3 +1,4 @@
public final class ParametersWithDefaultValuesKt {
public static final fun foo(a: int, b: java.lang.String, c: int, flag: boolean) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo(a: int, b: java.lang.String, c: int, flag: boolean) : void {
}
}
@@ -2,10 +2,13 @@ UFile (package = )
UClass (name = PropertyTest)
UMethod (name = PropertyTest)
UMethod (name = getStringRepresentation)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = setStringRepresentation)
UParameter (name = value)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = setDataFromString)
UParameter (name = data)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,6 +1,11 @@
public final class PropertyTest {
public fun PropertyTest() = UastEmptyExpression
public final fun getStringRepresentation() : java.lang.String = [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
public final fun setStringRepresentation(value: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun setDataFromString(data: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun getStringRepresentation() : java.lang.String {
return [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public final fun setStringRepresentation(value: java.lang.String) : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public final fun setDataFromString(data: java.lang.String) : void {
}
}
@@ -2,5 +2,6 @@ UFile (package = )
UClass (name = PropertyDelegateKt)
UMethod (name = getSdCardPath)
UMethod (name = localPropertyTest)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
UMethod (name = getAnnotatedDelegate)
@@ -1,5 +1,7 @@
public final class PropertyDelegateKt {
public static final fun getSdCardPath() : java.lang.String = UastEmptyExpression
public static final fun localPropertyTest() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun localPropertyTest() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
public static final fun getAnnotatedDelegate() : int = UastEmptyExpression
}
@@ -2,7 +2,10 @@ UFile (package = )
UClass (name = TestPropertyInitializer)
UMethod (name = TestPropertyInitializer)
UMethod (name = getWithSetter)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = setWithSetter)
UParameter (name = p)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
@@ -1,5 +1,9 @@
public final class TestPropertyInitializer {
public fun TestPropertyInitializer() = UastEmptyExpression
public final fun getWithSetter() : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public final fun setWithSetter(p: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)
public final fun getWithSetter() : java.lang.String {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
public final fun setWithSetter(p: java.lang.String) : void {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
@@ -3,6 +3,8 @@ UFile (package = )
UField (name = withoutSetter)
ULiteralExpression (value = "/sdcard")
UMethod (name = getWithoutSetter)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = setWithoutSetter)
UParameter (name = value)
@@ -1,5 +1,7 @@
public final class PropertyInitializerWithoutSetterKt {
private static var withoutSetter: java.lang.String = "/sdcard"
public static final fun getWithoutSetter() : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun getWithoutSetter() : java.lang.String {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
public static final fun setWithoutSetter(value: java.lang.String) : void = UastEmptyExpression
}
@@ -1,10 +1,21 @@
UFile (package = )
UClass (name = PropertyReferencesKt)
UMethod (name = properties)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PREFIX_EXPRESSION)
[!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
UMethod (name = ext)
UParameter (name = $this$ext)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PREFIX_EXPRESSION)
[!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
UClass (name = A)
UField (name = privateProp)
ULiteralExpression (value = "not-yet-compile-time-constant")
@@ -16,4 +27,8 @@ UFile (package = )
UParameter (name = value)
UMethod (name = add)
UParameter (name = x)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
@@ -1,6 +1,19 @@
public final class PropertyReferencesKt {
public static final fun properties() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun ext($this$ext: A) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun properties() : void {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PREFIX_EXPRESSION)
[!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
}
public static final fun ext($this$ext: A) : void {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PREFIX_EXPRESSION)
[!] UnknownKotlinExpression (POSTFIX_EXPRESSION)
}
}
public final class A {
@@ -9,5 +22,9 @@ public final class A {
public fun A(init: int) = UastEmptyExpression
public final fun getMutableProp() : int = UastEmptyExpression
public final fun setMutableProp(value: int) : void = UastEmptyExpression
public final fun add(x: int) : int = [!] UnknownKotlinExpression (BLOCK)
public final fun add(x: int) : int {
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
}
@@ -4,10 +4,15 @@ UFile (package = )
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = getProp1)
UMethod (name = getProp2)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = getProp3)
ULiteralExpression (value = "not-yet-compile-time-constant")
UBlockExpression
UReturnExpression
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = setProp3)
UParameter (name = value)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
UClass (name = TestAnnotation)
@@ -1,9 +1,15 @@
public final class PropertyWithAnnotationKt {
private static final var prop1: int = "not-yet-compile-time-constant"
public static final fun getProp1() : int = UastEmptyExpression
public static final fun getProp2() : int = "not-yet-compile-time-constant"
public static final fun getProp3() : int = "not-yet-compile-time-constant"
public static final fun setProp3(value: int) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun getProp2() : int {
return "not-yet-compile-time-constant"
}
public static final fun getProp3() : int {
return "not-yet-compile-time-constant"
}
public static final fun setProp3(value: int) : void {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
}
}
public abstract annotation TestAnnotation {
@@ -4,4 +4,6 @@ UFile (package = A.B.C)
UClass (name = Bar)
UMethod (name = Bar)
UMethod (name = getFoo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
@@ -6,5 +6,7 @@ public final class Foo {
public final class Bar {
public fun Bar() = UastEmptyExpression
public final fun getFoo() : A.B.C.Foo = [!] UnknownKotlinExpression (BLOCK)
public final fun getFoo() : A.B.C.Foo {
return [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
}
@@ -2,9 +2,13 @@ UFile (package = )
UClass (name = ReceiverFunKt)
UMethod (name = foo)
UParameter (name = $this$foo)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = getRx)
UParameter (name = $this$rx)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UClass (name = MyReceiverAnnotation)
UMethod (name = name)
@@ -1,6 +1,10 @@
public final class ReceiverFunKt {
public static final fun foo($this$foo: java.lang.String) : int = [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
public static final fun getRx($this$rx: java.lang.String) : kotlin.text.Regex = [!] UnknownKotlinExpression (BLOCK)
public static final fun foo($this$foo: java.lang.String) : int {
return [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public static final fun getRx($this$rx: java.lang.String) : kotlin.text.Regex {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
}
public abstract annotation MyReceiverAnnotation {
@@ -1,4 +1,9 @@
UFile (package = )
UClass (name = ReifiedResolveKt)
UMethod (name = resolve)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
@@ -1,3 +1,9 @@
public final class ReifiedResolveKt {
public static final fun resolve() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun resolve() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
}
}
@@ -4,6 +4,8 @@ UFile (package = )
UParameter (name = list)
UParameter (name = threshold)
UParameter (name = threshold2)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UClass (name = Foo)
UMethod (name = Foo)
@@ -1,5 +1,7 @@
public final class ReifiedReturnTypeKt {
public static final fun copyWhenGreater(list: java.util.List<? extends T>, threshold: T, threshold2: B) : B = [!] UnknownKotlinExpression (BLOCK)
public static final fun copyWhenGreater(list: java.util.List<? extends T>, threshold: T, threshold2: B) : B {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
}
public final class Foo {
@@ -1,14 +1,30 @@
UFile (package = )
UClass (name = ResolveKt)
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = barT)
UParameter (name = t)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
UMethod (name = barTL)
UParameter (name = listT)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (FOR)
UClass (name = A)
UMethod (name = A)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
@@ -1,10 +1,30 @@
public final class ResolveKt {
public static final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun barT(t: T) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun barTL(listT: T) : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun bar() : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun barT(t: T) : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
}
public static final fun barTL(listT: T) : void {
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
[!] UnknownKotlinExpression (FOR)
}
}
public class A {
public fun A() = UastEmptyExpression
public final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun foo() : void {
}
}
@@ -15,20 +15,35 @@ UFile (package = )
UMethod (name = setFoo)
UParameter (name = value)
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UReturnExpression
[!] UnknownKotlinExpression (LAMBDA_EXPRESSION)
UMethod (name = getBaz)
UMethod (name = runRunnable)
UParameter (name = r)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = test1)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
UMethod (name = test2)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (PROPERTY)
UMethod (name = test3)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = ambiguousSamAcceptor)
UParameter (name = s)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = ambiguousSamAcceptor)
UParameter (name = s)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
@@ -10,12 +10,30 @@ public final class SAMKt {
public static final fun getNotSam() : kotlin.jvm.functions.Function0<? extends kotlin.Unit> = UastEmptyExpression
public static final fun getFoo() : java.lang.Runnable = UastEmptyExpression
public static final fun setFoo(value: java.lang.Runnable) : void = UastEmptyExpression
public static final fun bar() : java.lang.Runnable = [!] UnknownKotlinExpression (BLOCK)
public static final fun bar() : java.lang.Runnable {
[!] UnknownKotlinExpression (BINARY_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
return [!] UnknownKotlinExpression (LAMBDA_EXPRESSION)
}
public static final fun getBaz() : java.lang.Runnable = UastEmptyExpression
public static final fun runRunnable(r: java.lang.Runnable) : error.NonExistentClass = [!] UnknownKotlinExpression (CALL_EXPRESSION)
public static final fun test1() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun test2() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun test3() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun ambiguousSamAcceptor(s: java.util.function.Supplier<java.lang.String>) : java.lang.String = [!] UnknownKotlinExpression (CALL_EXPRESSION)
public static final fun ambiguousSamAcceptor(s: java.util.concurrent.Callable<java.lang.String>) : java.lang.String = [!] UnknownKotlinExpression (CALL_EXPRESSION)
public static final fun runRunnable(r: java.lang.Runnable) : error.NonExistentClass {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun test1() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
public static final fun test2() : void {
[!] UnknownKotlinExpression (PROPERTY)
}
public static final fun test3() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun ambiguousSamAcceptor(s: java.util.function.Supplier<java.lang.String>) : java.lang.String {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public static final fun ambiguousSamAcceptor(s: java.util.concurrent.Callable<java.lang.String>) : java.lang.String {
return [!] UnknownKotlinExpression (CALL_EXPRESSION)
}
}
@@ -4,5 +4,6 @@ UFile (package = )
ULiteralExpression (value = "Mary")
UMethod (name = Simple)
UMethod (name = method)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = getProperty)
@@ -1,6 +1,8 @@
public final class Simple {
private final var property: java.lang.String = "Mary"
public fun Simple() = UastEmptyExpression
public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun method() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public final fun getProperty() : java.lang.String = UastEmptyExpression
}
@@ -4,5 +4,6 @@ UFile (package = )
ULiteralExpression (value = "Mary")
UMethod (name = SimpleAnnotated)
UMethod (name = method)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
UMethod (name = getProperty)
@@ -1,6 +1,8 @@
public final class SimpleAnnotated {
private final var property: java.lang.String = "Mary"
public fun SimpleAnnotated() = UastEmptyExpression
public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun method() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
}
public final fun getProperty() : java.lang.String = UastEmptyExpression
}
@@ -37,6 +37,11 @@ UFile (package = )
UMethod (name = simpleForTemplate)
UParameter (name = i)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UBlockExpression
UReturnExpression
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
UBlockExpression
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
@@ -11,6 +11,12 @@ public final class StringTemplateComplexKt {
public static final fun getLiteralInLiteral() : java.lang.String = UastEmptyExpression
public static final fun getLiteralInLiteral2() : java.lang.String = UastEmptyExpression
public static final fun getEmpty() : java.lang.String = UastEmptyExpression
public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun simpleForTemplate(i: int) : java.lang.String {
return [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
}
public static final fun foo() : void {
[!] UnknownKotlinExpression (CALL_EXPRESSION)
[!] UnknownKotlinExpression (PROPERTY)
[!] UnknownKotlinExpression (PROPERTY)
}
}

Some files were not shown because too many files have changed in this diff Show More