FIR/UAST: commonize literal expressions

This commit is contained in:
Jinseong Jeon
2021-05-25 14:34:37 -07:00
committed by Ilya Kirillov
parent 6b5bddeed7
commit 16b3d2110e
90 changed files with 581 additions and 406 deletions
@@ -0,0 +1,50 @@
/*
* 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.KtEscapeStringTemplateEntry
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtStringTemplateEntry
import org.jetbrains.kotlin.psi.KtStringTemplateEntryWithExpression
import org.jetbrains.uast.*
interface BaseKotlinConverter {
fun convertExpression(
expression: KtExpression,
givenParent: UElement?,
requiredTypes: Array<out Class<out UElement>>
): UExpression?
fun convertEntry(
entry: KtStringTemplateEntry,
givenParent: UElement?,
requiredTypes: Array<out Class<out UElement>>
): UExpression? {
return with(requiredTypes) {
if (entry is KtStringTemplateEntryWithExpression) {
expr<UExpression> {
convertOrEmpty(entry.expression, givenParent)
}
} else {
expr<ULiteralExpression> {
if (entry is KtEscapeStringTemplateEntry)
KotlinStringULiteralExpression(entry, givenParent, entry.unescapedValue)
else
KotlinStringULiteralExpression(entry, givenParent)
}
}
}
}
fun convertOrEmpty(expression: KtExpression?, parent: UElement?): UExpression {
return expression?.let { convertExpression(it, parent, DEFAULT_EXPRESSION_TYPES_LIST) } ?: UastEmptyExpression(parent)
}
fun convertOrNull(expression: KtExpression?, parent: UElement?): UExpression? {
return if (expression != null) convertExpression(expression, parent, DEFAULT_EXPRESSION_TYPES_LIST) else null
}
}
@@ -14,6 +14,8 @@ import org.jetbrains.uast.UExpression
interface BaseKotlinUastResolveProviderService {
fun isJvmElement(psiElement: PsiElement): Boolean
val baseKotlinConverter: BaseKotlinConverter
fun convertParent(uElement: UElement): UElement?
fun resolveToDeclaration(ktExpression: KtExpression): PsiElement?
@@ -1,17 +1,6 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* 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.
* 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
@@ -31,7 +20,7 @@ class KotlinStringTemplateUPolyadicExpression(
UInjectionHost {
override val operands: List<UExpression> by lz {
sourcePsi.entries.map {
KotlinConverter.convertEntry(
baseResolveProviderService.baseKotlinConverter.convertEntry(
it,
this,
DEFAULT_EXPRESSION_TYPES_LIST
@@ -45,4 +34,4 @@ class KotlinStringTemplateUPolyadicExpression(
override fun asRenderString(): String = if (operands.isEmpty()) "\"\"" else super<UPolyadicExpression>.asRenderString()
override fun asLogString(): String = if (operands.isEmpty()) "UPolyadicExpression (value = \"\")" else super.asLogString()
}
}
@@ -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 com.intellij.psi.PsiType
import org.jetbrains.kotlin.psi.KtEscapeStringTemplateEntry
import org.jetbrains.uast.UElement
import org.jetbrains.uast.ULiteralExpression
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
import org.jetbrains.uast.wrapULiteral
class KotlinStringULiteralExpression(
override val sourcePsi: PsiElement,
givenParent: UElement?,
val text: String
) : KotlinAbstractUExpression(givenParent), ULiteralExpression, KotlinUElementWithType, KotlinFakeUElement {
constructor(psi: PsiElement, uastParent: UElement?)
: this(psi, uastParent, if (psi is KtEscapeStringTemplateEntry) psi.unescapedValue else psi.text)
override val value: String
get() = text
override fun evaluate() = value
override fun getExpressionType(): PsiType = PsiType.getJavaLangString(sourcePsi.manager, sourcePsi.resolveScope)
override fun unwrapToSourcePsi(): List<PsiElement> = listOfNotNull(wrapULiteral(this).sourcePsi)
}
@@ -1,9 +1,9 @@
/*
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.expressions
package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiArrayType
import com.intellij.psi.PsiElement
@@ -11,9 +11,6 @@ import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiType
import org.jetbrains.kotlin.psi.KtCollectionLiteralExpression
import org.jetbrains.uast.*
import org.jetbrains.uast.kotlin.KotlinAbstractUExpression
import org.jetbrains.uast.kotlin.KotlinConverter
import org.jetbrains.uast.kotlin.KotlinUElementWithType
import org.jetbrains.uast.kotlin.internal.DelegatedMultiResolve
class KotlinUCollectionLiteralExpression(
@@ -43,7 +40,9 @@ class KotlinUCollectionLiteralExpression(
get() = sourcePsi.getInnerExpressions().size
override val valueArguments by lazy {
sourcePsi.getInnerExpressions().map { KotlinConverter.convertOrEmpty(it, this) }
sourcePsi.getInnerExpressions().map {
baseResolveProviderService.baseKotlinConverter.convertOrEmpty(it, this)
}
}
override fun asRenderString(): String = "collectionLiteral[" + valueArguments.joinToString { it.asRenderString() } + "]"
@@ -54,4 +53,4 @@ class KotlinUCollectionLiteralExpression(
override fun getArgumentForParameter(i: Int): UExpression? = valueArguments.getOrNull(i)
}
}
@@ -0,0 +1,26 @@
/*
* 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.KtNodeTypes
import org.jetbrains.kotlin.psi.KtConstantExpression
import org.jetbrains.uast.UElement
import org.jetbrains.uast.ULiteralExpression
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
import org.jetbrains.uast.wrapULiteral
class KotlinULiteralExpression(
override val sourcePsi: KtConstantExpression,
givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), ULiteralExpression, KotlinUElementWithType, KotlinEvaluatableUElement, KotlinFakeUElement {
override val isNull: Boolean
get() = sourcePsi.unwrapBlockOrParenthesis().node?.elementType == KtNodeTypes.NULL
override val value by lz { evaluate() }
override fun unwrapToSourcePsi(): List<PsiElement> = listOfNotNull(wrapULiteral(this).sourcePsi)
}
@@ -1,18 +1,12 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.internal
import com.intellij.psi.PsiElement
import org.jetbrains.uast.UElement
interface KotlinFakeUElement {
fun unwrapToSourcePsi(): List<PsiElement>
}
fun UElement.toSourcePsiFakeAware(): List<PsiElement> {
if (this is KotlinFakeUElement) return this.unwrapToSourcePsi()
return listOfNotNull(this.sourcePsi)
}
@@ -10,7 +10,10 @@ 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.uast.UDeclaration
import org.jetbrains.uast.UElement
import java.util.function.Supplier
@@ -33,3 +36,12 @@ fun getKotlinMemberOrigin(element: PsiElement?): KtDeclaration? {
(element as? KtLightElement<*, *>)?.kotlinOrigin?.let { return it as? KtDeclaration }
return null
}
fun KtExpression.unwrapBlockOrParenthesis(): KtExpression {
val innerExpression = KtPsiUtil.safeDeparenthesize(this)
if (innerExpression is KtBlockExpression) {
val statement = innerExpression.statements.singleOrNull() ?: return this
return KtPsiUtil.safeDeparenthesize(statement)
}
return innerExpression
}
@@ -5,11 +5,13 @@
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.uast.kotlin.internal.KotlinFakeUElement
fun expressionTypes(requiredType: Class<out UElement>?) =
requiredType?.let { arrayOf(it) } ?: DEFAULT_EXPRESSION_TYPES_LIST
@@ -47,3 +49,8 @@ val identifiersTokens = setOf(
KtTokens.THIS_KEYWORD, KtTokens.SUPER_KEYWORD,
KtTokens.GET_KEYWORD, KtTokens.SET_KEYWORD
)
fun UElement.toSourcePsiFakeAware(): List<PsiElement> {
if (this is KotlinFakeUElement) return this.unwrapToSourcePsi()
return listOfNotNull(this.sourcePsi)
}
@@ -18,8 +18,9 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import org.jetbrains.uast.*
import org.jetbrains.uast.expressions.UInjectionHost
internal object FirKotlinConverter {
internal object FirKotlinConverter : BaseKotlinConverter {
internal fun convertDeclarationOrElement(
element: PsiElement,
givenParent: UElement?,
@@ -172,7 +173,7 @@ internal object FirKotlinConverter {
},
alternative catch@{
val uCatchClause = element.parent?.parent?.safeAs<KtCatchClause>()?.toUElementOfType<UCatchClause>() ?: return@catch null
uCatchClause.parameters.firstOrNull { it.sourcePsi == element}
uCatchClause.parameters.firstOrNull { it.sourcePsi == element }
},
*convertToPropertyAlternatives(LightClassUtil.getLightClassPropertyMethods(element), givenParent)
)
@@ -192,6 +193,13 @@ internal object FirKotlinConverter {
is KtExpression -> {
convertExpression(element, givenParent, requiredTypes)
}
is KtLiteralStringTemplateEntry, is KtEscapeStringTemplateEntry -> {
el<ULiteralExpression>(build(::KotlinStringULiteralExpression))
}
is KtStringTemplateEntry -> {
element.expression?.let { convertExpression(it, givenParent, requiredTypes) }
?: expr<UExpression> { UastEmptyExpression(givenParent) }
}
is KtImportDirective -> {
el<UImportStatement>(build(::KotlinUImportStatement))
}
@@ -208,8 +216,12 @@ internal object FirKotlinConverter {
el<UIdentifier>(build(::KotlinUIdentifier))
}
element.elementType == KtTokens.LBRACKET && element.parent is KtCollectionLiteralExpression -> {
// TODO: need counterpart of UCollectionLiteralExpression
null
el<UIdentifier> {
UIdentifier(
element,
KotlinUCollectionLiteralExpression(element.parent as KtCollectionLiteralExpression, null)
)
}
}
else -> null
}
@@ -219,7 +231,9 @@ internal object FirKotlinConverter {
}
}
internal fun convertExpression(
// TODO: forceUInjectionHost (for test)?
override fun convertExpression(
expression: KtExpression,
givenParent: UElement?,
requiredTypes: Array<out Class<out UElement>>
@@ -234,6 +248,26 @@ internal object FirKotlinConverter {
return with(requiredTypes) {
when (expression) {
is KtStringTemplateExpression -> {
when {
requiredTypes.contains(UInjectionHost::class.java) -> {
expr<UInjectionHost> { KotlinStringTemplateUPolyadicExpression(expression, givenParent) }
}
expression.entries.isEmpty() -> {
expr<ULiteralExpression> { KotlinStringULiteralExpression(expression, givenParent, "") }
}
expression.entries.size == 1 -> {
convertEntry(expression.entries[0], givenParent, requiredTypes)
}
else -> {
expr<KotlinStringTemplateUPolyadicExpression> {
KotlinStringTemplateUPolyadicExpression(expression, givenParent)
}
}
}
}
is KtCollectionLiteralExpression -> expr<UCallExpression>(build(::KotlinUCollectionLiteralExpression))
is KtConstantExpression -> expr<ULiteralExpression>(build(::KotlinULiteralExpression))
else -> expr<UExpression>(build(::UnknownKotlinExpression))
}
}
@@ -16,6 +16,9 @@ import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
interface FirKotlinUastResolveProviderService : BaseKotlinUastResolveProviderService {
override val baseKotlinConverter: BaseKotlinConverter
get() = FirKotlinConverter
override fun convertParent(uElement: UElement): UElement? {
TODO("Not yet implemented")
}
@@ -33,10 +36,12 @@ interface FirKotlinUastResolveProviderService : BaseKotlinUastResolveProviderSer
}
override fun getExpressionType(uExpression: UExpression): PsiType? {
TODO("Not yet implemented")
// TODO("Not yet implemented")
return null
}
override fun evaluate(uExpression: UExpression): Any? {
TODO("Not yet implemented")
// TODO("Not yet implemented")
return "not-yet-compile-time-constant"
}
}
@@ -1,7 +1,7 @@
UFile (package = declaration)
UClass (name = Utils)
UMethod (name = foo)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = buzz)
UParameter (name = $this$buzz)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,6 +1,6 @@
package declaration
public final class Utils {
public static final fun foo() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
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)
}
@@ -24,4 +24,5 @@ C -> UClass (name = C)
AnnotationArray -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
Annotation -> [!] UnknownKotlinExpression (CALL_EXPRESSION)
strings -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
[ -> UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 2))
C2 -> UClass (name = C2)
@@ -32,9 +32,11 @@ bar -> UMethod (name = bar)
Unit -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
RequiresPermission -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
anyOf -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
[ -> UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
fooWithArrLiteral -> UMethod (name = fooWithArrLiteral)
Int -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
RequiresStrPermission -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
strs -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
[ -> UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
fooWithStrArrLiteral -> UMethod (name = fooWithStrArrLiteral)
Int -> [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
@@ -1,13 +1,13 @@
UFile (package = )
UClass (name = AnnotationParametersKt)
UMethod (name = foo)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = fooWithArrLiteral)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = fooWithStrArrLiteral)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UClass (name = IntRange)
UMethod (name = from)
UMethod (name = to)
@@ -1,8 +1,8 @@
public final class AnnotationParametersKt {
public static final fun foo() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
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 = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
public static final fun fooWithStrArrLiteral() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
public static final fun fooWithArrLiteral() : int = "not-yet-compile-time-constant"
public static final fun fooWithStrArrLiteral() : int = "not-yet-compile-time-constant"
}
public abstract annotation IntRange {
@@ -1,6 +1,6 @@
UFile (package = )
UClass (name = Foo)
UMethod (name = bar)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "Hello!")
UClass (name = Baz)
UMethod (name = Baz)
@@ -1,5 +1,5 @@
public abstract interface Foo {
public fun bar() : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
public fun bar() : java.lang.String = "Hello!"
}
public final class Baz : null {
@@ -2,7 +2,7 @@ UFile (package = )
UClass (name = DefaultParameterValuesKt)
UMethod (name = foo)
UParameter (name = a)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = foo)
[!] UnknownKotlinExpression (NULL)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (BLOCK)
@@ -2,8 +2,8 @@ UFile (package = )
UClass (name = ElvisKt)
UMethod (name = foo)
UParameter (name = bar)
[!] UnknownKotlinExpression (NULL)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = baz)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,5 +1,5 @@
public final class ElvisKt {
public static final fun foo(bar: java.lang.String) : java.lang.String = [!] UnknownKotlinExpression (NULL)
public static final fun bar() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
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)
}
@@ -2,7 +2,7 @@ UFile (package = )
UClass (name = ClassA)
UField (name = paramAndProp)
UField (name = writebleProp)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = ClassA)
UParameter (name = justParam)
UParameter (name = paramAndProp)
@@ -1,6 +1,6 @@
public final class ClassA {
private final var paramAndProp: java.lang.String
private var writebleProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
private var writebleProp: int = "not-yet-compile-time-constant"
public fun ClassA(justParam: int, paramAndProp: java.lang.String) = UastEmptyExpression
public final fun getParamAndProp() : java.lang.String = UastEmptyExpression
public final fun getWritebleProp() : int = UastEmptyExpression
@@ -1,7 +1,7 @@
UFile (package = )
UClass (name = NameContainingFileKt)
UField (name = xyzzy)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
[!] UnknownKotlinExpression (BLOCK)
UMethod (name = getXyzzy)
@@ -1,5 +1,5 @@
public final class NameContainingFileKt {
private static final var xyzzy: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
private static final var xyzzy: int = "not-yet-compile-time-constant"
public static final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)
public static final fun getXyzzy() : int = UastEmptyExpression
}
@@ -6,9 +6,9 @@ UFile (package = )
[!] UnknownKotlinExpression (BLOCK)
UMethod (name = withDefault)
UParameter (name = c)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = d)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "aaa")
[!] UnknownKotlinExpression (BLOCK)
UMethod (name = withReceiver)
UParameter (name = $this$withReceiver)
@@ -4,7 +4,7 @@ UFile (package = )
UParameter (name = a)
UParameter (name = b)
UParameter (name = c)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UParameter (name = flag)
[!] UnknownKotlinExpression (BOOLEAN_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (BLOCK)
@@ -1,7 +1,7 @@
UFile (package = )
UClass (name = PropertyInitializerWithoutSetterKt)
UField (name = withoutSetter)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "/sdcard")
UMethod (name = getWithoutSetter)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = setWithoutSetter)
@@ -1,5 +1,5 @@
public final class PropertyInitializerWithoutSetterKt {
private static var withoutSetter: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static var withoutSetter: java.lang.String = "/sdcard"
public static final fun getWithoutSetter() : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun setWithoutSetter(value: java.lang.String) : void = UastEmptyExpression
}
@@ -7,7 +7,7 @@ UFile (package = )
[!] UnknownKotlinExpression (BLOCK)
UClass (name = A)
UField (name = privateProp)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UField (name = mutableProp)
UMethod (name = A)
UParameter (name = init)
@@ -4,7 +4,7 @@ public final class PropertyReferencesKt {
}
public final class A {
private var privateProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
private var privateProp: int = "not-yet-compile-time-constant"
private var mutableProp: int
public fun A(init: int) = UastEmptyExpression
public final fun getMutableProp() : int = UastEmptyExpression
@@ -1,12 +1,12 @@
UFile (package = )
UClass (name = PropertyWithAnnotationKt)
UField (name = prop1)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = getProp1)
UMethod (name = getProp2)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = getProp3)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = setProp3)
UParameter (name = value)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,8 +1,8 @@
public final class PropertyWithAnnotationKt {
private static final var prop1: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
private static final var prop1: int = "not-yet-compile-time-constant"
public static final fun getProp1() : int = UastEmptyExpression
public static final fun getProp2() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
public static final fun getProp3() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)
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)
}
@@ -1,7 +1,7 @@
UFile (package = )
UClass (name = Simple)
UField (name = property)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "Mary")
UMethod (name = Simple)
UMethod (name = method)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,5 +1,5 @@
public final class Simple {
private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private final var property: java.lang.String = "Mary"
public fun Simple() = UastEmptyExpression
public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun getProperty() : java.lang.String = UastEmptyExpression
@@ -1,7 +1,7 @@
UFile (package = )
UClass (name = SimpleAnnotated)
UField (name = property)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "Mary")
UMethod (name = SimpleAnnotated)
UMethod (name = method)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,5 +1,5 @@
public final class SimpleAnnotated {
private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private final var property: java.lang.String = "Mary"
public fun SimpleAnnotated() = UastEmptyExpression
public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)
public final fun getProperty() : java.lang.String = UastEmptyExpression
@@ -1,13 +1,18 @@
UFile (package = )
UClass (name = StringTemplateKt)
UField (name = foo)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "lorem")
UField (name = bar)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "ipsum")
UField (name = baz)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "dolor")
UField (name = foobarbaz)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
ULiteralExpression (value = " ")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
ULiteralExpression (value = " ")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = getFoo)
UMethod (name = getBar)
UMethod (name = getBaz)
@@ -1,8 +1,8 @@
public final class StringTemplateKt {
private static final var foo: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var baz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var foo: java.lang.String = "lorem"
private static final var bar: java.lang.String = "ipsum"
private static final var baz: java.lang.String = "dolor"
private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun getFoo() : java.lang.String = UastEmptyExpression
public static final fun getBar() : java.lang.String = UastEmptyExpression
public static final fun getBaz() : java.lang.String = UastEmptyExpression
@@ -1,17 +1,33 @@
UFile (package = )
UClass (name = StringTemplateComplexKt)
UField (name = muchRecur)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "abc")
UField (name = case4)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " z")
UField (name = case5)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " z")
UField (name = literalInLiteral)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
UPolyadicExpression (operator = +)
ULiteralExpression (value = "literal")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
ULiteralExpression (value = " z")
UField (name = literalInLiteral2)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
ULiteralExpression (value = " z")
UField (name = empty)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "")
UMethod (name = getMuchRecur)
UMethod (name = getCase4)
UMethod (name = getCase5)
@@ -20,7 +36,7 @@ UFile (package = )
UMethod (name = getEmpty)
UMethod (name = simpleForTemplate)
UParameter (name = i)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,16 +1,16 @@
public final class StringTemplateComplexKt {
private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var muchRecur: java.lang.String = "abc"
private static final var case4: java.lang.String = "a " + "literal" + " z"
private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"
private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"
private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"
private static final var empty: java.lang.String = ""
public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression
public static final fun getCase4() : java.lang.String = UastEmptyExpression
public static final fun getCase5() : java.lang.String = UastEmptyExpression
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 (STRING_TEMPLATE)
public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
}
@@ -1,17 +1,33 @@
UFile (package = )
UClass (name = StringTemplateComplexForUInjectionHostKt)
UField (name = muchRecur)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "abc")
UField (name = case4)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " z")
UField (name = case5)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " z")
UField (name = literalInLiteral)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
UPolyadicExpression (operator = +)
ULiteralExpression (value = "literal")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
ULiteralExpression (value = " z")
UField (name = literalInLiteral2)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)
ULiteralExpression (value = " z")
UField (name = empty)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "")
UMethod (name = getMuchRecur)
UMethod (name = getCase4)
UMethod (name = getCase5)
@@ -20,7 +36,7 @@ UFile (package = )
UMethod (name = getEmpty)
UMethod (name = simpleForTemplate)
UParameter (name = i)
[!] UnknownKotlinExpression (INTEGER_CONSTANT)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "not-yet-compile-time-constant")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = foo)
[!] UnknownKotlinExpression (BLOCK)
@@ -1,16 +1,16 @@
public final class StringTemplateComplexForUInjectionHostKt {
private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var muchRecur: java.lang.String = "abc"
private static final var case4: java.lang.String = "a " + "literal" + " z"
private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"
private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"
private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"
private static final var empty: java.lang.String = ""
public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression
public static final fun getCase4() : java.lang.String = UastEmptyExpression
public static final fun getCase5() : java.lang.String = UastEmptyExpression
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 (STRING_TEMPLATE)
public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)
}
@@ -1,8 +1,10 @@
UFile (package = )
UClass (name = StringTemplateWithVarKt)
UField (name = bar)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
ULiteralExpression (value = "bar")
UField (name = f)
[!] UnknownKotlinExpression (STRING_TEMPLATE)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "foo")
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
UMethod (name = getBar)
UMethod (name = getF)
@@ -1,6 +1,6 @@
public final class StringTemplateWithVarKt {
private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var f: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)
private static final var bar: java.lang.String = "bar"
private static final var f: java.lang.String = "foo" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)
public static final fun getBar() : java.lang.String = UastEmptyExpression
public static final fun getF() : java.lang.String = UastEmptyExpression
}
@@ -3,8 +3,8 @@ UFile (package = )
UMethod (name = foo)
UParameter (name = $this$foo)
UParameter (name = x)
[!] UnknownKotlinExpression (NULL)
ULiteralExpression (value = "not-yet-compile-time-constant")
UMethod (name = bar)
UParameter (name = $this$bar)
UParameter (name = x)
[!] UnknownKotlinExpression (NULL)
ULiteralExpression (value = "not-yet-compile-time-constant")
@@ -1,4 +1,4 @@
public final class TypeAliasExpansionWithOtherAliasInArgumentKt {
public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = [!] UnknownKotlinExpression (NULL)
public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = [!] UnknownKotlinExpression (NULL)
public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = "not-yet-compile-time-constant"
public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = "not-yet-compile-time-constant"
}
@@ -1,13 +1,13 @@
UFile (package = ) [public final class AnnotationParametersKt {...]
UClass (name = AnnotationParametersKt) [public final class AnnotationParametersKt {...}]
UMethod (name = foo) [public static final fun foo() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UMethod (name = foo) [public static final fun foo() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = bar) [public static final fun bar() : void = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = fooWithArrLiteral) [public static final fun fooWithArrLiteral() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UMethod (name = fooWithStrArrLiteral) [public static final fun fooWithStrArrLiteral() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UMethod (name = fooWithArrLiteral) [public static final fun fooWithArrLiteral() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = fooWithStrArrLiteral) [public static final fun fooWithStrArrLiteral() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UClass (name = IntRange) [public abstract annotation IntRange {...}]
UMethod (name = from) [public abstract fun from() : long = UastEmptyExpression]
UMethod (name = to) [public abstract fun to() : long = UastEmptyExpression]
@@ -1,6 +1,6 @@
UFile (package = ) [public abstract interface Foo {...]
UClass (name = Foo) [public abstract interface Foo {...}]
UMethod (name = bar) [public fun bar() : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UMethod (name = bar) [public fun bar() : java.lang.String = "Hello!"]
ULiteralExpression (value = "Hello!") ["Hello!"] : PsiType:String
UClass (name = Baz) [public final class Baz : null {...}]
UMethod (name = Baz) [public fun Baz() = UastEmptyExpression]
@@ -1,8 +1,8 @@
UFile (package = ) [public final class DefaultParameterValuesKt {...]
UClass (name = DefaultParameterValuesKt) [public final class DefaultParameterValuesKt {...}]
UMethod (name = foo) [public static final fun foo(a: int, foo: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = a) [var a: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UParameter (name = foo) [var foo: java.lang.String = [!] UnknownKotlinExpression (NULL)]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)]
UParameter (name = a) [var a: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UParameter (name = foo) [var foo: java.lang.String = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,9 +1,9 @@
UFile (package = ) [public final class ElvisKt {...]
UClass (name = ElvisKt) [public final class ElvisKt {...}]
UMethod (name = foo) [public static final fun foo(bar: java.lang.String) : java.lang.String = [!] UnknownKotlinExpression (NULL)]
UMethod (name = foo) [public static final fun foo(bar: java.lang.String) : java.lang.String = "not-yet-compile-time-constant"]
UParameter (name = bar) [var bar: java.lang.String]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)]
UMethod (name = bar) [public static final fun bar() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = bar) [public static final fun bar() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = baz) [public static final fun baz() : java.lang.String = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,8 +1,8 @@
UFile (package = ) [public final class ClassA {...]
UClass (name = ClassA) [public final class ClassA {...}]
UField (name = paramAndProp) [private final var paramAndProp: java.lang.String]
UField (name = writebleProp) [private var writebleProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UField (name = writebleProp) [private var writebleProp: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = ClassA) [public fun ClassA(justParam: int, paramAndProp: java.lang.String) = UastEmptyExpression]
UParameter (name = justParam) [var justParam: int]
UParameter (name = paramAndProp) [var paramAndProp: java.lang.String]
@@ -1,7 +1,7 @@
UFile (package = ) [public final class NameContainingFileKt {...]
UClass (name = NameContainingFileKt) [public final class NameContainingFileKt {...}]
UField (name = xyzzy) [private static final var xyzzy: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UField (name = xyzzy) [private static final var xyzzy: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = bar) [public static final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
UMethod (name = getXyzzy) [public static final fun getXyzzy() : int = UastEmptyExpression]
@@ -5,10 +5,10 @@ UFile (package = ) [public final class ParametersDisorderKt {...]
UParameter (name = b) [var b: float]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
UMethod (name = withDefault) [public static final fun withDefault(c: int, d: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = c) [var c: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UParameter (name = d) [var d: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UParameter (name = c) [var c: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UParameter (name = d) [var d: java.lang.String = "aaa"]
ULiteralExpression (value = "aaa") ["aaa"] : PsiType:String
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
UMethod (name = withReceiver) [public static final fun withReceiver($this$withReceiver: java.lang.String, a: int, b: float) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = $this$withReceiver) [var $this$withReceiver: java.lang.String]
@@ -3,8 +3,8 @@ UFile (package = ) [public final class ParametersWithDefaultValuesKt {...]
UMethod (name = foo) [public static final fun foo(a: int, b: java.lang.String, c: int, flag: boolean) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = a) [var a: int]
UParameter (name = b) [var b: java.lang.String]
UParameter (name = c) [var c: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UParameter (name = flag) [var flag: boolean = [!] UnknownKotlinExpression (BOOLEAN_CONSTANT)]
[!] UnknownKotlinExpression (BOOLEAN_CONSTANT) [[!] UnknownKotlinExpression (BOOLEAN_CONSTANT)]
UParameter (name = c) [var c: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UParameter (name = flag) [var flag: boolean = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,7 +1,7 @@
UFile (package = ) [public final class PropertyInitializerWithoutSetterKt {...]
UClass (name = PropertyInitializerWithoutSetterKt) [public final class PropertyInitializerWithoutSetterKt {...}]
UField (name = withoutSetter) [private static var withoutSetter: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = withoutSetter) [private static var withoutSetter: java.lang.String = "/sdcard"]
ULiteralExpression (value = "/sdcard") ["/sdcard"] : PsiType:String
UMethod (name = getWithoutSetter) [public static final fun getWithoutSetter() : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = setWithoutSetter) [public static final fun setWithoutSetter(value: java.lang.String) : void = UastEmptyExpression]
@@ -6,8 +6,8 @@ UFile (package = ) [public final class PropertyReferencesKt {...]
UParameter (name = $this$ext) [var $this$ext: A]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
UClass (name = A) [public final class A {...}]
UField (name = privateProp) [private var privateProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UField (name = privateProp) [private var privateProp: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UField (name = mutableProp) [private var mutableProp: int]
UMethod (name = A) [public fun A(init: int) = UastEmptyExpression]
UParameter (name = init) [var init: int]
@@ -1,12 +1,12 @@
UFile (package = ) [public final class PropertyWithAnnotationKt {...]
UClass (name = PropertyWithAnnotationKt) [public final class PropertyWithAnnotationKt {...}]
UField (name = prop1) [private static final var prop1: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UField (name = prop1) [private static final var prop1: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = getProp1) [public static final fun getProp1() : int = UastEmptyExpression]
UMethod (name = getProp2) [public static final fun getProp2() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UMethod (name = getProp3) [public static final fun getProp3() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
UMethod (name = getProp2) [public static final fun getProp2() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = getProp3) [public static final fun getProp3() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = setProp3) [public static final fun setProp3(value: int) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = value) [var value: int]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,7 +1,7 @@
UFile (package = ) [public final class Simple {...]
UClass (name = Simple) [public final class Simple {...}]
UField (name = property) [private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = property) [private final var property: java.lang.String = "Mary"]
ULiteralExpression (value = "Mary") ["Mary"] : PsiType:String
UMethod (name = Simple) [public fun Simple() = UastEmptyExpression]
UMethod (name = method) [public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,7 +1,7 @@
UFile (package = ) [public final class SimpleAnnotated {...]
UClass (name = SimpleAnnotated) [public final class SimpleAnnotated {...}]
UField (name = property) [private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = property) [private final var property: java.lang.String = "Mary"]
ULiteralExpression (value = "Mary") ["Mary"] : PsiType:String
UMethod (name = SimpleAnnotated) [public fun SimpleAnnotated() = UastEmptyExpression]
UMethod (name = method) [public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,13 +1,18 @@
UFile (package = ) [public final class StringTemplateKt {...]
UClass (name = StringTemplateKt) [public final class StringTemplateKt {...}]
UField (name = foo) [private static final var foo: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = bar) [private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = baz) [private static final var baz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = foobarbaz) [private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = foo) [private static final var foo: java.lang.String = "lorem"]
ULiteralExpression (value = "lorem") ["lorem"] : PsiType:String
UField (name = bar) [private static final var bar: java.lang.String = "ipsum"]
ULiteralExpression (value = "ipsum") ["ipsum"] : PsiType:String
UField (name = baz) [private static final var baz: java.lang.String = "dolor"]
ULiteralExpression (value = "dolor") ["dolor"] : PsiType:String
UField (name = foobarbaz) [private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UPolyadicExpression (operator = +) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = " ") [" "] : PsiType:String
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = " ") [" "] : PsiType:String
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = getFoo) [public static final fun getFoo() : java.lang.String = UastEmptyExpression]
UMethod (name = getBar) [public static final fun getBar() : java.lang.String = UastEmptyExpression]
UMethod (name = getBaz) [public static final fun getBaz() : java.lang.String = UastEmptyExpression]
@@ -1,26 +1,42 @@
UFile (package = ) [public final class StringTemplateComplexKt {...]
UClass (name = StringTemplateComplexKt) [public final class StringTemplateComplexKt {...}]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = case4) [private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = case5) [private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = empty) [private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = "abc"]
ULiteralExpression (value = "abc") ["abc"] : PsiType:String
UField (name = case4) [private static final var case4: java.lang.String = "a " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = case5) [private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " " + "literal" + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " ") [" "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
UPolyadicExpression (operator = +) ["literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) [[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)]
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = empty) [private static final var empty: java.lang.String = ""]
ULiteralExpression (value = "") [""] : PsiType:String
UMethod (name = getMuchRecur) [public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase4) [public static final fun getCase4() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase5) [public static final fun getCase5() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral) [public static final fun getLiteralInLiteral() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral2) [public static final fun getLiteralInLiteral2() : java.lang.String = UastEmptyExpression]
UMethod (name = getEmpty) [public static final fun getEmpty() : java.lang.String = UastEmptyExpression]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
UParameter (name = i) [var i: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UParameter (name = i) [var i: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = foo) [public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,26 +1,42 @@
UFile (package = ) [public final class StringTemplateComplexForUInjectionHostKt {...]
UClass (name = StringTemplateComplexForUInjectionHostKt) [public final class StringTemplateComplexForUInjectionHostKt {...}]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = case4) [private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = case5) [private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = empty) [private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = "abc"]
ULiteralExpression (value = "abc") ["abc"] : PsiType:String
UField (name = case4) [private static final var case4: java.lang.String = "a " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = case5) [private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " " + "literal" + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " ") [" "] : PsiType:String
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
UPolyadicExpression (operator = +) ["literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = "literal") ["literal"] : PsiType:String
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
ULiteralExpression (value = "a ") ["a "] : PsiType:String
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) [[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)]
ULiteralExpression (value = " z") [" z"] : PsiType:String
UField (name = empty) [private static final var empty: java.lang.String = ""]
ULiteralExpression (value = "") [""] : PsiType:String
UMethod (name = getMuchRecur) [public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase4) [public static final fun getCase4() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase5) [public static final fun getCase5() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral) [public static final fun getLiteralInLiteral() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral2) [public static final fun getLiteralInLiteral2() : java.lang.String = UastEmptyExpression]
UMethod (name = getEmpty) [public static final fun getEmpty() : java.lang.String = UastEmptyExpression]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
UParameter (name = i) [var i: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UParameter (name = i) [var i: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = foo) [public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)]
@@ -1,8 +1,10 @@
UFile (package = ) [public final class StringTemplateWithVarKt {...]
UClass (name = StringTemplateWithVarKt) [public final class StringTemplateWithVarKt {...}]
UField (name = bar) [private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = f) [private static final var f: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)]
UField (name = bar) [private static final var bar: java.lang.String = "bar"]
ULiteralExpression (value = "bar") ["bar"] : PsiType:String
UField (name = f) [private static final var f: java.lang.String = "foo" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UPolyadicExpression (operator = +) ["foo" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
ULiteralExpression (value = "foo") ["foo"] : PsiType:String
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UMethod (name = getBar) [public static final fun getBar() : java.lang.String = UastEmptyExpression]
UMethod (name = getF) [public static final fun getF() : java.lang.String = UastEmptyExpression]
@@ -1,10 +1,10 @@
UFile (package = ) [public final class TypeAliasExpansionWithOtherAliasInArgumentKt {...]
UClass (name = TypeAliasExpansionWithOtherAliasInArgumentKt) [public final class TypeAliasExpansionWithOtherAliasInArgumentKt {...}]
UMethod (name = foo) [public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = [!] UnknownKotlinExpression (NULL)]
UMethod (name = foo) [public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = "not-yet-compile-time-constant"]
UParameter (name = $this$foo) [var $this$foo: kotlin.jvm.functions.Function1]
UParameter (name = x) [var x: kotlin.jvm.functions.Function1]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)]
UMethod (name = bar) [public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = [!] UnknownKotlinExpression (NULL)]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
UMethod (name = bar) [public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = "not-yet-compile-time-constant"]
UParameter (name = $this$bar) [var $this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>]
UParameter (name = x) [var x: java.util.Map<java.lang.String,? extends java.lang.Integer>]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"]
@@ -1,13 +1,13 @@
UFile (package = ) [public final class AnnotationParametersKt {...]
UClass (name = AnnotationParametersKt) [public final class AnnotationParametersKt {...}]
UMethod (name = foo) [public static final fun foo() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UMethod (name = foo) [public static final fun foo() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = bar) [public static final fun bar() : void = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = fooWithArrLiteral) [public static final fun fooWithArrLiteral() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UMethod (name = fooWithStrArrLiteral) [public static final fun fooWithStrArrLiteral() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UMethod (name = fooWithArrLiteral) [public static final fun fooWithArrLiteral() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = fooWithStrArrLiteral) [public static final fun fooWithStrArrLiteral() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UClass (name = IntRange) [public abstract annotation IntRange {...}]
UMethod (name = from) [public abstract fun from() : long = UastEmptyExpression]
UMethod (name = to) [public abstract fun to() : long = UastEmptyExpression]
@@ -1,6 +1,6 @@
UFile (package = ) [public abstract interface Foo {...]
UClass (name = Foo) [public abstract interface Foo {...}]
UMethod (name = bar) [public fun bar() : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UMethod (name = bar) [public fun bar() : java.lang.String = "Hello!"]
ULiteralExpression (value = "Hello!") ["Hello!"] = "Hello!"
UClass (name = Baz) [public final class Baz : null {...}]
UMethod (name = Baz) [public fun Baz() = UastEmptyExpression]
@@ -1,8 +1,8 @@
UFile (package = ) [public final class DefaultParameterValuesKt {...]
UClass (name = DefaultParameterValuesKt) [public final class DefaultParameterValuesKt {...}]
UMethod (name = foo) [public static final fun foo(a: int, foo: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = a) [var a: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UParameter (name = foo) [var foo: java.lang.String = [!] UnknownKotlinExpression (NULL)]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] = Undetermined
UParameter (name = a) [var a: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UParameter (name = foo) [var foo: java.lang.String = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,9 +1,9 @@
UFile (package = ) [public final class ElvisKt {...]
UClass (name = ElvisKt) [public final class ElvisKt {...}]
UMethod (name = foo) [public static final fun foo(bar: java.lang.String) : java.lang.String = [!] UnknownKotlinExpression (NULL)]
UMethod (name = foo) [public static final fun foo(bar: java.lang.String) : java.lang.String = "not-yet-compile-time-constant"]
UParameter (name = bar) [var bar: java.lang.String]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] = Undetermined
UMethod (name = bar) [public static final fun bar() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = bar) [public static final fun bar() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = baz) [public static final fun baz() : java.lang.String = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,8 +1,8 @@
UFile (package = ) [public final class ClassA {...]
UClass (name = ClassA) [public final class ClassA {...}]
UField (name = paramAndProp) [private final var paramAndProp: java.lang.String]
UField (name = writebleProp) [private var writebleProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UField (name = writebleProp) [private var writebleProp: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = ClassA) [public fun ClassA(justParam: int, paramAndProp: java.lang.String) = UastEmptyExpression]
UParameter (name = justParam) [var justParam: int]
UParameter (name = paramAndProp) [var paramAndProp: java.lang.String]
@@ -1,7 +1,7 @@
UFile (package = ) [public final class NameContainingFileKt {...]
UClass (name = NameContainingFileKt) [public final class NameContainingFileKt {...}]
UField (name = xyzzy) [private static final var xyzzy: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UField (name = xyzzy) [private static final var xyzzy: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = bar) [public static final fun bar() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
UMethod (name = getXyzzy) [public static final fun getXyzzy() : int = UastEmptyExpression]
@@ -5,10 +5,10 @@ UFile (package = ) [public final class ParametersDisorderKt {...]
UParameter (name = b) [var b: float]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
UMethod (name = withDefault) [public static final fun withDefault(c: int, d: java.lang.String) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = c) [var c: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UParameter (name = d) [var d: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UParameter (name = c) [var c: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UParameter (name = d) [var d: java.lang.String = "aaa"]
ULiteralExpression (value = "aaa") ["aaa"] = "aaa"
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
UMethod (name = withReceiver) [public static final fun withReceiver($this$withReceiver: java.lang.String, a: int, b: float) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = $this$withReceiver) [var $this$withReceiver: java.lang.String]
@@ -3,8 +3,8 @@ UFile (package = ) [public final class ParametersWithDefaultValuesKt {...]
UMethod (name = foo) [public static final fun foo(a: int, b: java.lang.String, c: int, flag: boolean) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = a) [var a: int]
UParameter (name = b) [var b: java.lang.String]
UParameter (name = c) [var c: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UParameter (name = flag) [var flag: boolean = [!] UnknownKotlinExpression (BOOLEAN_CONSTANT)]
[!] UnknownKotlinExpression (BOOLEAN_CONSTANT) [[!] UnknownKotlinExpression (BOOLEAN_CONSTANT)] = Undetermined
UParameter (name = c) [var c: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UParameter (name = flag) [var flag: boolean = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,7 +1,7 @@
UFile (package = ) [public final class PropertyInitializerWithoutSetterKt {...]
UClass (name = PropertyInitializerWithoutSetterKt) [public final class PropertyInitializerWithoutSetterKt {...}]
UField (name = withoutSetter) [private static var withoutSetter: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = withoutSetter) [private static var withoutSetter: java.lang.String = "/sdcard"]
ULiteralExpression (value = "/sdcard") ["/sdcard"] = "/sdcard"
UMethod (name = getWithoutSetter) [public static final fun getWithoutSetter() : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = setWithoutSetter) [public static final fun setWithoutSetter(value: java.lang.String) : void = UastEmptyExpression]
@@ -6,8 +6,8 @@ UFile (package = ) [public final class PropertyReferencesKt {...]
UParameter (name = $this$ext) [var $this$ext: A]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
UClass (name = A) [public final class A {...}]
UField (name = privateProp) [private var privateProp: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UField (name = privateProp) [private var privateProp: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UField (name = mutableProp) [private var mutableProp: int]
UMethod (name = A) [public fun A(init: int) = UastEmptyExpression]
UParameter (name = init) [var init: int]
@@ -1,12 +1,12 @@
UFile (package = ) [public final class PropertyWithAnnotationKt {...]
UClass (name = PropertyWithAnnotationKt) [public final class PropertyWithAnnotationKt {...}]
UField (name = prop1) [private static final var prop1: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UField (name = prop1) [private static final var prop1: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = getProp1) [public static final fun getProp1() : int = UastEmptyExpression]
UMethod (name = getProp2) [public static final fun getProp2() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UMethod (name = getProp3) [public static final fun getProp3() : int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
UMethod (name = getProp2) [public static final fun getProp2() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = getProp3) [public static final fun getProp3() : int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = setProp3) [public static final fun setProp3(value: int) : void = [!] UnknownKotlinExpression (BLOCK)]
UParameter (name = value) [var value: int]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,7 +1,7 @@
UFile (package = ) [public final class Simple {...]
UClass (name = Simple) [public final class Simple {...}]
UField (name = property) [private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = property) [private final var property: java.lang.String = "Mary"]
ULiteralExpression (value = "Mary") ["Mary"] = "Mary"
UMethod (name = Simple) [public fun Simple() = UastEmptyExpression]
UMethod (name = method) [public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,7 +1,7 @@
UFile (package = ) [public final class SimpleAnnotated {...]
UClass (name = SimpleAnnotated) [public final class SimpleAnnotated {...}]
UField (name = property) [private final var property: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = property) [private final var property: java.lang.String = "Mary"]
ULiteralExpression (value = "Mary") ["Mary"] = "Mary"
UMethod (name = SimpleAnnotated) [public fun SimpleAnnotated() = UastEmptyExpression]
UMethod (name = method) [public final fun method() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,13 +1,18 @@
UFile (package = ) [public final class StringTemplateKt {...]
UClass (name = StringTemplateKt) [public final class StringTemplateKt {...}]
UField (name = foo) [private static final var foo: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = bar) [private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = baz) [private static final var baz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = foobarbaz) [private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = foo) [private static final var foo: java.lang.String = "lorem"]
ULiteralExpression (value = "lorem") ["lorem"] = "lorem"
UField (name = bar) [private static final var bar: java.lang.String = "ipsum"]
ULiteralExpression (value = "ipsum") ["ipsum"] = "ipsum"
UField (name = baz) [private static final var baz: java.lang.String = "dolor"]
ULiteralExpression (value = "dolor") ["dolor"] = "dolor"
UField (name = foobarbaz) [private static final var foobarbaz: java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UPolyadicExpression (operator = +) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " " + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = " ") [" "] = " "
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = " ") [" "] = " "
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = getFoo) [public static final fun getFoo() : java.lang.String = UastEmptyExpression]
UMethod (name = getBar) [public static final fun getBar() : java.lang.String = UastEmptyExpression]
UMethod (name = getBaz) [public static final fun getBaz() : java.lang.String = UastEmptyExpression]
@@ -1,26 +1,42 @@
UFile (package = ) [public final class StringTemplateComplexKt {...]
UClass (name = StringTemplateComplexKt) [public final class StringTemplateComplexKt {...}]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = case4) [private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = case5) [private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = empty) [private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = "abc"]
ULiteralExpression (value = "abc") ["abc"] = "abc"
UField (name = case4) [private static final var case4: java.lang.String = "a " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " z"] = "a literal z"
ULiteralExpression (value = "a ") ["a "] = "a "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = case5) [private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " " + "literal" + " z"] = "a literal literal z"
ULiteralExpression (value = "a ") ["a "] = "a "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " ") [" "] = " "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"] = Undetermined
ULiteralExpression (value = "a ") ["a "] = "a "
UPolyadicExpression (operator = +) ["literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = "literal") ["literal"] = "literal"
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"] = Undetermined
ULiteralExpression (value = "a ") ["a "] = "a "
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) [[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)] = Undetermined
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = empty) [private static final var empty: java.lang.String = ""]
ULiteralExpression (value = "") [""] = ""
UMethod (name = getMuchRecur) [public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase4) [public static final fun getCase4() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase5) [public static final fun getCase5() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral) [public static final fun getLiteralInLiteral() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral2) [public static final fun getLiteralInLiteral2() : java.lang.String = UastEmptyExpression]
UMethod (name = getEmpty) [public static final fun getEmpty() : java.lang.String = UastEmptyExpression]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
UParameter (name = i) [var i: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UParameter (name = i) [var i: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = foo) [public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,26 +1,42 @@
UFile (package = ) [public final class StringTemplateComplexForUInjectionHostKt {...]
UClass (name = StringTemplateComplexForUInjectionHostKt) [public final class StringTemplateComplexForUInjectionHostKt {...}]
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = case4) [private static final var case4: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = case5) [private static final var case5: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = empty) [private static final var empty: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = muchRecur) [private static final var muchRecur: java.lang.String = "abc"]
ULiteralExpression (value = "abc") ["abc"] = "abc"
UField (name = case4) [private static final var case4: java.lang.String = "a " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " z"] = "a literal z"
ULiteralExpression (value = "a ") ["a "] = "a "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = case5) [private static final var case5: java.lang.String = "a " + "literal" + " " + "literal" + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + " " + "literal" + " z"] = "a literal literal z"
ULiteralExpression (value = "a ") ["a "] = "a "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " ") [" "] = " "
ULiteralExpression (value = "literal") ["literal"] = "literal"
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = literalInLiteral) [private static final var literalInLiteral: java.lang.String = "a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + "literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION) + " z"] = Undetermined
ULiteralExpression (value = "a ") ["a "] = "a "
UPolyadicExpression (operator = +) ["literal" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = "literal") ["literal"] = "literal"
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = literalInLiteral2) [private static final var literalInLiteral2: java.lang.String = "a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"]
UPolyadicExpression (operator = +) ["a " + [!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) + " z"] = Undetermined
ULiteralExpression (value = "a ") ["a "] = "a "
[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION) [[!] UnknownKotlinExpression (DOT_QUALIFIED_EXPRESSION)] = Undetermined
ULiteralExpression (value = " z") [" z"] = " z"
UField (name = empty) [private static final var empty: java.lang.String = ""]
ULiteralExpression (value = "") [""] = ""
UMethod (name = getMuchRecur) [public static final fun getMuchRecur() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase4) [public static final fun getCase4() : java.lang.String = UastEmptyExpression]
UMethod (name = getCase5) [public static final fun getCase5() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral) [public static final fun getLiteralInLiteral() : java.lang.String = UastEmptyExpression]
UMethod (name = getLiteralInLiteral2) [public static final fun getLiteralInLiteral2() : java.lang.String = UastEmptyExpression]
UMethod (name = getEmpty) [public static final fun getEmpty() : java.lang.String = UastEmptyExpression]
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
UParameter (name = i) [var i: int = [!] UnknownKotlinExpression (INTEGER_CONSTANT)]
[!] UnknownKotlinExpression (INTEGER_CONSTANT) [[!] UnknownKotlinExpression (INTEGER_CONSTANT)] = Undetermined
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UMethod (name = simpleForTemplate) [public static final fun simpleForTemplate(i: int) : java.lang.String = [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UParameter (name = i) [var i: int = "not-yet-compile-time-constant"]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = foo) [public static final fun foo() : void = [!] UnknownKotlinExpression (BLOCK)]
[!] UnknownKotlinExpression (BLOCK) [[!] UnknownKotlinExpression (BLOCK)] = Undetermined
@@ -1,8 +1,10 @@
UFile (package = ) [public final class StringTemplateWithVarKt {...]
UClass (name = StringTemplateWithVarKt) [public final class StringTemplateWithVarKt {...}]
UField (name = bar) [private static final var bar: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = f) [private static final var f: java.lang.String = [!] UnknownKotlinExpression (STRING_TEMPLATE)]
[!] UnknownKotlinExpression (STRING_TEMPLATE) [[!] UnknownKotlinExpression (STRING_TEMPLATE)] = Undetermined
UField (name = bar) [private static final var bar: java.lang.String = "bar"]
ULiteralExpression (value = "bar") ["bar"] = "bar"
UField (name = f) [private static final var f: java.lang.String = "foo" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)]
UPolyadicExpression (operator = +) ["foo" + [!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
ULiteralExpression (value = "foo") ["foo"] = "foo"
[!] UnknownKotlinExpression (REFERENCE_EXPRESSION) [[!] UnknownKotlinExpression (REFERENCE_EXPRESSION)] = Undetermined
UMethod (name = getBar) [public static final fun getBar() : java.lang.String = UastEmptyExpression]
UMethod (name = getF) [public static final fun getF() : java.lang.String = UastEmptyExpression]
@@ -1,10 +1,10 @@
UFile (package = ) [public final class TypeAliasExpansionWithOtherAliasInArgumentKt {...]
UClass (name = TypeAliasExpansionWithOtherAliasInArgumentKt) [public final class TypeAliasExpansionWithOtherAliasInArgumentKt {...}]
UMethod (name = foo) [public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = [!] UnknownKotlinExpression (NULL)]
UMethod (name = foo) [public static final fun foo($this$foo: kotlin.jvm.functions.Function1, x: kotlin.jvm.functions.Function1) : kotlin.jvm.functions.Function1 = "not-yet-compile-time-constant"]
UParameter (name = $this$foo) [var $this$foo: kotlin.jvm.functions.Function1]
UParameter (name = x) [var x: kotlin.jvm.functions.Function1]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] = Undetermined
UMethod (name = bar) [public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = [!] UnknownKotlinExpression (NULL)]
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
UMethod (name = bar) [public static final fun bar($this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>, x: java.util.Map<java.lang.String,? extends java.lang.Integer>) : java.util.Map<java.lang.String,? extends java.lang.Integer> = "not-yet-compile-time-constant"]
UParameter (name = $this$bar) [var $this$bar: java.util.Map<java.lang.String,? extends java.lang.Integer>]
UParameter (name = x) [var x: java.util.Map<java.lang.String,? extends java.lang.Integer>]
[!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] = Undetermined
ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant"
@@ -33,7 +33,6 @@ import org.jetbrains.uast.generate.UastCodeGenerationPlugin
import org.jetbrains.uast.generate.UastElementFactory
import org.jetbrains.uast.kotlin.*
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
import org.jetbrains.uast.kotlin.internal.toSourcePsiFakeAware
class KotlinUastCodeGenerationPlugin : UastCodeGenerationPlugin {
override val language: Language
@@ -428,4 +427,4 @@ class KotlinUastElementFactory(project: Project) : UastElementFactory {
private fun usedNamesFilter(context: KtElement): (String) -> Boolean {
val scope = context.getResolutionScope()
return { name: String -> scope.findClassifier(Name.identifier(name), NoLookupLocation.FROM_IDE) == null }
}
}
@@ -27,7 +27,7 @@ import org.jetbrains.uast.kotlin.declarations.KotlinUMethodWithFakeLightDelegate
import org.jetbrains.uast.kotlin.expressions.*
import org.jetbrains.uast.kotlin.psi.*
internal object KotlinConverter {
internal object KotlinConverter : BaseKotlinConverter {
internal tailrec fun unwrapElements(element: PsiElement?): PsiElement? = when (element) {
is KtValueArgumentList -> unwrapElements(element.parent)
is KtValueArgument -> unwrapElements(element.parent)
@@ -139,38 +139,16 @@ internal object KotlinConverter {
return call.toUElementOfType<UMethod>()?.uastParameters?.firstOrNull()
}
internal fun convertEntry(
entry: KtStringTemplateEntry,
givenParent: UElement?,
requiredType: Array<out Class<out UElement>>
): UExpression? {
return with(requiredType) {
if (entry is KtStringTemplateEntryWithExpression) {
expr<UExpression> {
convertOrEmpty(entry.expression, givenParent)
}
}
else {
expr<ULiteralExpression> {
if (entry is KtEscapeStringTemplateEntry)
KotlinStringULiteralExpression(entry, givenParent, entry.unescapedValue)
else
KotlinStringULiteralExpression(entry, givenParent)
}
}
}
}
var forceUInjectionHost = Registry.`is`("kotlin.uast.force.uinjectionhost", false)
@TestOnly
set(value) {
field = value
}
internal fun convertExpression(
override fun convertExpression(
expression: KtExpression,
givenParent: UElement?,
requiredType: Array<out Class<out UElement>>
requiredTypes: Array<out Class<out UElement>>
): UExpression? {
fun <P : PsiElement> build(ctor: (P, UElement?) -> UExpression): () -> UExpression? {
return {
@@ -179,18 +157,18 @@ internal object KotlinConverter {
}
}
return with (requiredType) { when (expression) {
return with(requiredTypes) { when (expression) {
is KtVariableDeclaration -> expr<UDeclarationsExpression>(build(::convertVariablesDeclaration))
is KtStringTemplateExpression -> {
when {
forceUInjectionHost || requiredType.contains(UInjectionHost::class.java) ->
forceUInjectionHost || requiredTypes.contains(UInjectionHost::class.java) ->
expr<UInjectionHost> { KotlinStringTemplateUPolyadicExpression(expression, givenParent) }
expression.entries.isEmpty() -> {
expr<ULiteralExpression> { KotlinStringULiteralExpression(expression, givenParent, "") }
}
expression.entries.size == 1 -> convertEntry(expression.entries[0], givenParent, requiredType)
expression.entries.size == 1 -> convertEntry(expression.entries[0], givenParent, requiredTypes)
else ->
expr<KotlinStringTemplateUPolyadicExpression> { KotlinStringTemplateUPolyadicExpression(expression, givenParent) }
@@ -277,7 +255,7 @@ internal object KotlinConverter {
}
is KtAnnotatedExpression -> {
expression.baseExpression
?.let { convertExpression(it, givenParent, requiredType) }
?.let { convertExpression(it, givenParent, requiredTypes) }
?: expr<UExpression>(build(::UnknownKotlinExpression))
}
@@ -555,14 +533,6 @@ internal object KotlinConverter {
alternative { element.findFacadeClass()?.let { KotlinUClass.create(it, givenParent) } }
)
internal fun convertOrEmpty(expression: KtExpression?, parent: UElement?): UExpression {
return expression?.let { convertExpression(it, parent, DEFAULT_EXPRESSION_TYPES_LIST) } ?: UastEmptyExpression(parent)
}
internal fun convertOrNull(expression: KtExpression?, parent: UElement?): UExpression? {
return if (expression != null) convertExpression(expression, parent, DEFAULT_EXPRESSION_TYPES_LIST) else null
}
internal fun KtPsiFactory.createAnalyzableExpression(text: String, context: PsiElement): KtExpression =
createAnalyzableProperty("val x = $text", context).initializer ?: error("Failed to create expression from text: '$text'")
@@ -24,6 +24,9 @@ interface KotlinUastResolveProviderService : BaseKotlinUastResolveProviderServic
fun getLanguageVersionSettings(element: KtElement): LanguageVersionSettings
fun getReferenceVariants(ktElement: KtElement, nameHint: String): Sequence<DeclarationDescriptor>
override val baseKotlinConverter: BaseKotlinConverter
get() = KotlinConverter
override fun convertParent(uElement: UElement): UElement? {
return convertParentImpl(uElement)
}
@@ -1,57 +0,0 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* 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.
*/
package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiType
import org.jetbrains.kotlin.KtNodeTypes
import org.jetbrains.kotlin.psi.KtConstantExpression
import org.jetbrains.kotlin.psi.KtEscapeStringTemplateEntry
import org.jetbrains.uast.UElement
import org.jetbrains.uast.ULiteralExpression
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
import org.jetbrains.uast.wrapULiteral
class KotlinULiteralExpression(
override val sourcePsi: KtConstantExpression,
givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), ULiteralExpression, KotlinUElementWithType, KotlinEvaluatableUElement, KotlinFakeUElement {
override val isNull: Boolean
get() = sourcePsi.unwrapBlockOrParenthesis().node?.elementType == KtNodeTypes.NULL
override val value by lz { evaluate() }
override fun unwrapToSourcePsi(): List<PsiElement> = listOfNotNull(wrapULiteral(this).sourcePsi)
}
class KotlinStringULiteralExpression(
override val sourcePsi: PsiElement,
givenParent: UElement?,
val text: String
) : KotlinAbstractUExpression(givenParent), ULiteralExpression, KotlinUElementWithType, KotlinFakeUElement {
constructor(psi: PsiElement, uastParent: UElement?)
: this(psi, uastParent, if (psi is KtEscapeStringTemplateEntry) psi.unescapedValue else psi.text)
override val value: String
get() = text
override fun evaluate() = value
override fun getExpressionType(): PsiType? = PsiType.getJavaLangString(sourcePsi.manager, sourcePsi.resolveScope)
override fun unwrapToSourcePsi(): List<PsiElement> = listOfNotNull(wrapULiteral(this).sourcePsi)
}
@@ -22,7 +22,6 @@ import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.UReturnExpression
import org.jetbrains.uast.kotlin.internal.KotlinFakeUElement
import org.jetbrains.uast.kotlin.internal.toSourcePsiFakeAware
class KotlinUReturnExpression(
override val sourcePsi: KtReturnExpression,
@@ -92,15 +92,6 @@ internal val KOTLIN_CACHED_UELEMENT_KEY = Key.create<WeakReference<UElement>>("c
@Suppress("NOTHING_TO_INLINE")
internal inline fun String?.orAnonymous(kind: String = ""): String = this ?: "<anonymous" + (if (kind.isNotBlank()) " $kind" else "") + ">"
internal fun KtExpression.unwrapBlockOrParenthesis(): KtExpression {
val innerExpression = KtPsiUtil.safeDeparenthesize(this)
if (innerExpression is KtBlockExpression) {
val statement = innerExpression.statements.singleOrNull() ?: return this
return KtPsiUtil.safeDeparenthesize(statement)
}
return innerExpression
}
internal fun getContainingLightClass(original: KtDeclaration): KtLightClass? =
(original.containingClassOrObject?.toLightClass() ?: original.containingKtFile.findFacadeClass())