diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinConverter.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinConverter.kt new file mode 100644 index 00000000000..32438011794 --- /dev/null +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinConverter.kt @@ -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> + ): UExpression? + + fun convertEntry( + entry: KtStringTemplateEntry, + givenParent: UElement?, + requiredTypes: Array> + ): UExpression? { + return with(requiredTypes) { + if (entry is KtStringTemplateEntryWithExpression) { + expr { + convertOrEmpty(entry.expression, givenParent) + } + } else { + expr { + 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 + } +} diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinUastResolveProviderService.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinUastResolveProviderService.kt index 6e2bd1a638a..4176ebdba7a 100644 --- a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinUastResolveProviderService.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/BaseKotlinUastResolveProviderService.kt @@ -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? diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt similarity index 66% rename from plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt rename to plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt index 6e518421b2c..f6736f2dd39 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringTemplateUPolyadicExpression.kt @@ -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 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.asRenderString() override fun asLogString(): String = if (operands.isEmpty()) "UPolyadicExpression (value = \"\")" else super.asLogString() -} \ No newline at end of file +} diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringULiteralExpression.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringULiteralExpression.kt new file mode 100644 index 00000000000..4ee5aa095a4 --- /dev/null +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinStringULiteralExpression.kt @@ -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 = listOfNotNull(wrapULiteral(this).sourcePsi) +} diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt similarity index 84% rename from plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt rename to plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt index bc12f346d67..5919bb311ae 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUCollectionLiteralExpression.kt @@ -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) -} \ No newline at end of file +} diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt new file mode 100644 index 00000000000..48c272ef30f --- /dev/null +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt @@ -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 = listOfNotNull(wrapULiteral(this).sourcePsi) +} diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt similarity index 53% rename from plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt rename to plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt index aa4a176dbf2..9e1c4951116 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/KotlinFakeUElement.kt @@ -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 } - -fun UElement.toSourcePsiFakeAware(): List { - if (this is KotlinFakeUElement) return this.unwrapToSourcePsi() - return listOfNotNull(this.sourcePsi) -} \ No newline at end of file diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/baseKotlinInternalUastUtils.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/baseKotlinInternalUastUtils.kt index 10bbb5bdef7..3cd85fbac70 100644 --- a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/baseKotlinInternalUastUtils.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/baseKotlinInternalUastUtils.kt @@ -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 +} diff --git a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/converterUtils.kt b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/converterUtils.kt index 828e7ea2ea4..a888701af3f 100644 --- a/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/converterUtils.kt +++ b/plugins/uast-kotlin-base/src/org/jetbrains/uast/kotlin/internal/converterUtils.kt @@ -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?) = 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 { + if (this is KotlinFakeUElement) return this.unwrapToSourcePsi() + return listOfNotNull(this.sourcePsi) +} diff --git a/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinConverter.kt b/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinConverter.kt index 7acca7562aa..223a3a4833b 100644 --- a/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinConverter.kt +++ b/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinConverter.kt @@ -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()?.toUElementOfType() ?: 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(build(::KotlinStringULiteralExpression)) + } + is KtStringTemplateEntry -> { + element.expression?.let { convertExpression(it, givenParent, requiredTypes) } + ?: expr { UastEmptyExpression(givenParent) } + } is KtImportDirective -> { el(build(::KotlinUImportStatement)) } @@ -208,8 +216,12 @@ internal object FirKotlinConverter { el(build(::KotlinUIdentifier)) } element.elementType == KtTokens.LBRACKET && element.parent is KtCollectionLiteralExpression -> { - // TODO: need counterpart of UCollectionLiteralExpression - null + el { + 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> @@ -234,6 +248,26 @@ internal object FirKotlinConverter { return with(requiredTypes) { when (expression) { + is KtStringTemplateExpression -> { + when { + requiredTypes.contains(UInjectionHost::class.java) -> { + expr { KotlinStringTemplateUPolyadicExpression(expression, givenParent) } + } + expression.entries.isEmpty() -> { + expr { KotlinStringULiteralExpression(expression, givenParent, "") } + } + expression.entries.size == 1 -> { + convertEntry(expression.entries[0], givenParent, requiredTypes) + } + else -> { + expr { + KotlinStringTemplateUPolyadicExpression(expression, givenParent) + } + } + } + } + is KtCollectionLiteralExpression -> expr(build(::KotlinUCollectionLiteralExpression)) + is KtConstantExpression -> expr(build(::KotlinULiteralExpression)) else -> expr(build(::UnknownKotlinExpression)) } } diff --git a/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt b/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt index 4941f55001c..9f17177edf8 100644 --- a/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt +++ b/plugins/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt @@ -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" } } diff --git a/plugins/uast-kotlin-fir/testData/declaration/facade.log.fir.txt b/plugins/uast-kotlin-fir/testData/declaration/facade.log.fir.txt index 4924c95a80f..d7dc88d4a5b 100644 --- a/plugins/uast-kotlin-fir/testData/declaration/facade.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/declaration/facade.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/declaration/facade.render.fir.txt b/plugins/uast-kotlin-fir/testData/declaration/facade.render.fir.txt index 6478d962d88..390d360f53c 100644 --- a/plugins/uast-kotlin-fir/testData/declaration/facade.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/declaration/facade.render.fir.txt @@ -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) } diff --git a/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationComplex.identifiers.fir.txt b/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationComplex.identifiers.fir.txt index 1500832fcd5..be20f3bcd07 100644 --- a/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationComplex.identifiers.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationComplex.identifiers.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationParameters.identifiers.fir.txt b/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationParameters.identifiers.fir.txt index e1305031926..21578d2d034 100644 --- a/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationParameters.identifiers.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyIdentifiers/AnnotationParameters.identifiers.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.log.fir.txt index 9b033f5eb51..36cb8e149b2 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.render.fir.txt index 3dedf677953..fbba6050b9b 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/AnnotationParameters.render.fir.txt @@ -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 { diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.log.fir.txt index fa251a6b3d5..d535974f128 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.log.fir.txt @@ -1,6 +1,6 @@ UFile (package = ) UClass (name = Foo) UMethod (name = bar) - [!] UnknownKotlinExpression (STRING_TEMPLATE) + ULiteralExpression (value = "Hello!") UClass (name = Baz) UMethod (name = Baz) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.render.fir.txt index 1705526674b..d27af0b812d 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultImpls.render.fir.txt @@ -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 { diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultParameterValues.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultParameterValues.log.fir.txt index 36ab1b80bfd..8a92bf9de56 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultParameterValues.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/DefaultParameterValues.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.log.fir.txt index ece58229eae..1e584109afa 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.render.fir.txt index 7e416b5cc33..d0d8b970c23 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Elvis.render.fir.txt @@ -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) } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.log.fir.txt index 505378da69b..a0d08134cef 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.render.fir.txt index febad67c65f..0bca4f783e6 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ManyAlternatives.render.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.log.fir.txt index 995e5d1499e..9d65b463ace 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.render.fir.txt index 590ef379696..7ee7492d10a 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/NameContainingFile.render.fir.txt @@ -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 } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersDisorder.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersDisorder.log.fir.txt index de68cfe50cd..006e9afda49 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersDisorder.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersDisorder.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersWithDefaultValues.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersWithDefaultValues.log.fir.txt index dad9b55e31b..773caba7109 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersWithDefaultValues.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/ParametersWithDefaultValues.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.log.fir.txt index a23a054b587..7769fe097d7 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.render.fir.txt index 89135d9373d..c3c46213b83 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyInitializerWithoutSetter.render.fir.txt @@ -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 } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.log.fir.txt index 0389323f1a1..03075dde37d 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.render.fir.txt index 17554bfa012..f2c46870408 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyReferences.render.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.log.fir.txt index 34aef588ecd..7cd4b29ef72 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.render.fir.txt index 92409cd3cca..c8bdfb282b9 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/PropertyWithAnnotation.render.fir.txt @@ -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) } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.log.fir.txt index 1db139286d4..f5d3325b7a6 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.render.fir.txt index ac2cba7b847..3dfc9de2f90 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/Simple.render.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.log.fir.txt index ddfb9558545..28a6ca2d9da 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.render.fir.txt index a437be60ee4..7147ade23e4 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/SimpleAnnotated.render.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.log.fir.txt index 440c71b713d..0ecead874b1 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.render.fir.txt index ffe26e1c8ed..de55272f5b8 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplate.render.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.log.fir.txt index 8b20fb3f632..d482c663881 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.render.fir.txt index 112659dc712..42a39bf37a4 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplex.render.fir.txt @@ -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) } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.log.fir.txt index 60b590c619f..495ddd7cf21 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.render.fir.txt index 1a7e8ab8b70..9d8633f86b2 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateComplexForUInjectionHost.render.fir.txt @@ -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) } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.log.fir.txt index 0d9979a5d35..936e927c34b 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.log.fir.txt @@ -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) diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.render.fir.txt index 7a884de1aba..0a106fcbf09 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/StringTemplateWithVar.render.fir.txt @@ -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 } diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.log.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.log.fir.txt index 09b4b134631..b7d5182f8ce 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.log.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.log.fir.txt @@ -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") diff --git a/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.render.fir.txt b/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.render.fir.txt index 661ef8956e3..33536c9372f 100644 --- a/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.render.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyRenderLog/TypeAliasExpansionWithOtherAliasInArgument.render.fir.txt @@ -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, x: java.util.Map) : java.util.Map = [!] 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, x: java.util.Map) : java.util.Map = "not-yet-compile-time-constant" } diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/AnnotationParameters.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/AnnotationParameters.types.fir.txt index 3e181c5861e..7db9c01e60f 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/AnnotationParameters.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/AnnotationParameters.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultImpls.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultImpls.types.fir.txt index c782ae60aec..9520b1917aa 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultImpls.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultImpls.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultParameterValues.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultParameterValues.types.fir.txt index ed2c6def575..9838a46cb80 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultParameterValues.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/DefaultParameterValues.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/Elvis.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/Elvis.types.fir.txt index 76bda4fb906..059c5a6d5a8 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/Elvis.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/Elvis.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/ManyAlternatives.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/ManyAlternatives.types.fir.txt index 8ed9f624e97..cd8e04bb528 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/ManyAlternatives.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/ManyAlternatives.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/NameContainingFile.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/NameContainingFile.types.fir.txt index cff29b6ab97..593937e1844 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/NameContainingFile.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/NameContainingFile.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersDisorder.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersDisorder.types.fir.txt index 6308bfa8367..8dd40a2f8d7 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersDisorder.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersDisorder.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersWithDefaultValues.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersWithDefaultValues.types.fir.txt index d115dd2be4c..e6549698cca 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersWithDefaultValues.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/ParametersWithDefaultValues.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyInitializerWithoutSetter.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyInitializerWithoutSetter.types.fir.txt index 85e045f1dbe..d63ee365e87 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyInitializerWithoutSetter.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyInitializerWithoutSetter.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyReferences.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyReferences.types.fir.txt index 82770ba54d5..72786302aaf 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyReferences.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyReferences.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyWithAnnotation.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyWithAnnotation.types.fir.txt index 693a8fc7984..67f11230c30 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyWithAnnotation.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/PropertyWithAnnotation.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/Simple.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/Simple.types.fir.txt index 8a4af8fef34..e52eb466638 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/Simple.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/Simple.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/SimpleAnnotated.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/SimpleAnnotated.types.fir.txt index 9b59ba343aa..64bb8b34409 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/SimpleAnnotated.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/SimpleAnnotated.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplate.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplate.types.fir.txt index e4fd3e891a1..f2f53aa2d6e 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplate.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplate.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplex.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplex.types.fir.txt index 1cdb750340d..bbe31e0fe1b 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplex.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplex.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplexForUInjectionHost.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplexForUInjectionHost.types.fir.txt index 109abc408b9..fa80c11ed66 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplexForUInjectionHost.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateComplexForUInjectionHost.types.fir.txt @@ -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)] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateWithVar.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateWithVar.types.fir.txt index f1aac2765d9..c96104349f2 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateWithVar.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/StringTemplateWithVar.types.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyTypes/TypeAliasExpansionWithOtherAliasInArgument.types.fir.txt b/plugins/uast-kotlin-fir/testData/legacyTypes/TypeAliasExpansionWithOtherAliasInArgument.types.fir.txt index 5f6f117d9e3..c6648426e0f 100644 --- a/plugins/uast-kotlin-fir/testData/legacyTypes/TypeAliasExpansionWithOtherAliasInArgument.types.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyTypes/TypeAliasExpansionWithOtherAliasInArgument.types.fir.txt @@ -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, x: java.util.Map) : java.util.Map = [!] 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, x: java.util.Map) : java.util.Map = "not-yet-compile-time-constant"] UParameter (name = $this$bar) [var $this$bar: java.util.Map] UParameter (name = x) [var x: java.util.Map] - [!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] + ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/AnnotationParameters.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/AnnotationParameters.values.fir.txt index 49ba7577e1c..635e15ecad9 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/AnnotationParameters.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/AnnotationParameters.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/DefaultImpls.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/DefaultImpls.values.fir.txt index 084b1ba7de6..302334fed92 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/DefaultImpls.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/DefaultImpls.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/DefaultParameterValues.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/DefaultParameterValues.values.fir.txt index a0e14450a09..7075db3c770 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/DefaultParameterValues.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/DefaultParameterValues.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/Elvis.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/Elvis.values.fir.txt index 60c28441400..2d4c89a7422 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/Elvis.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/Elvis.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/ManyAlternatives.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/ManyAlternatives.values.fir.txt index e18bbadeec2..04a113297b6 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/ManyAlternatives.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/ManyAlternatives.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/NameContainingFile.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/NameContainingFile.values.fir.txt index 8123f7d81c3..a9ee8d301a7 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/NameContainingFile.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/NameContainingFile.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/ParametersDisorder.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/ParametersDisorder.values.fir.txt index 7d969d7c6af..85a18bc735f 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/ParametersDisorder.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/ParametersDisorder.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/ParametersWithDefaultValues.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/ParametersWithDefaultValues.values.fir.txt index 9e497e84462..06cb3be626f 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/ParametersWithDefaultValues.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/ParametersWithDefaultValues.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyInitializerWithoutSetter.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyInitializerWithoutSetter.values.fir.txt index 7c4d925d15e..8569e9e3ea7 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyInitializerWithoutSetter.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyInitializerWithoutSetter.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyReferences.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyReferences.values.fir.txt index cd5f949e712..01a753eb920 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyReferences.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyReferences.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyWithAnnotation.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyWithAnnotation.values.fir.txt index 5ea7cc5e8d4..7a70d2dec7b 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/PropertyWithAnnotation.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/PropertyWithAnnotation.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/Simple.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/Simple.values.fir.txt index 1b5cfd8a155..e97722fa19c 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/Simple.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/Simple.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/SimpleAnnotated.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/SimpleAnnotated.values.fir.txt index 70a339f5572..2b98af34623 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/SimpleAnnotated.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/SimpleAnnotated.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplate.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplate.values.fir.txt index db7c1e541e0..b431da7382e 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplate.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplate.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplex.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplex.values.fir.txt index d255948ceb0..0662a5ebef0 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplex.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplex.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplexForUInjectionHost.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplexForUInjectionHost.values.fir.txt index c6be9b9fb79..3cfaa2b8bbe 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplexForUInjectionHost.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateComplexForUInjectionHost.values.fir.txt @@ -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 diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateWithVar.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateWithVar.values.fir.txt index 19346edfeec..15d26f939e2 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateWithVar.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/StringTemplateWithVar.values.fir.txt @@ -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] diff --git a/plugins/uast-kotlin-fir/testData/legacyValues/TypeAliasExpansionWithOtherAliasInArgument.values.fir.txt b/plugins/uast-kotlin-fir/testData/legacyValues/TypeAliasExpansionWithOtherAliasInArgument.values.fir.txt index 726218d35d7..77a65b79d1b 100644 --- a/plugins/uast-kotlin-fir/testData/legacyValues/TypeAliasExpansionWithOtherAliasInArgument.values.fir.txt +++ b/plugins/uast-kotlin-fir/testData/legacyValues/TypeAliasExpansionWithOtherAliasInArgument.values.fir.txt @@ -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, x: java.util.Map) : java.util.Map = [!] 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, x: java.util.Map) : java.util.Map = "not-yet-compile-time-constant"] UParameter (name = $this$bar) [var $this$bar: java.util.Map] UParameter (name = x) [var x: java.util.Map] - [!] UnknownKotlinExpression (NULL) [[!] UnknownKotlinExpression (NULL)] = Undetermined + ULiteralExpression (value = "not-yet-compile-time-constant") ["not-yet-compile-time-constant"] = "not-yet-compile-time-constant" diff --git a/plugins/uast-kotlin-idea/src/org/jetbrains/uast/kotlin/generate/KotlinUastCodeGenerationPlugin.kt b/plugins/uast-kotlin-idea/src/org/jetbrains/uast/kotlin/generate/KotlinUastCodeGenerationPlugin.kt index b4e78d8f8d9..a1cb06630ab 100644 --- a/plugins/uast-kotlin-idea/src/org/jetbrains/uast/kotlin/generate/KotlinUastCodeGenerationPlugin.kt +++ b/plugins/uast-kotlin-idea/src/org/jetbrains/uast/kotlin/generate/KotlinUastCodeGenerationPlugin.kt @@ -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 } -} \ No newline at end of file +} diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinConverter.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinConverter.kt index 2eb6e194c3c..9973a2adf35 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinConverter.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinConverter.kt @@ -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()?.uastParameters?.firstOrNull() } - internal fun convertEntry( - entry: KtStringTemplateEntry, - givenParent: UElement?, - requiredType: Array> - ): UExpression? { - return with(requiredType) { - if (entry is KtStringTemplateEntryWithExpression) { - expr { - convertOrEmpty(entry.expression, givenParent) - } - } - else { - expr { - 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> + requiredTypes: Array> ): UExpression? { fun

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(build(::convertVariablesDeclaration)) is KtStringTemplateExpression -> { when { - forceUInjectionHost || requiredType.contains(UInjectionHost::class.java) -> + forceUInjectionHost || requiredTypes.contains(UInjectionHost::class.java) -> expr { KotlinStringTemplateUPolyadicExpression(expression, givenParent) } expression.entries.isEmpty() -> { expr { 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(expression, givenParent) } @@ -277,7 +255,7 @@ internal object KotlinConverter { } is KtAnnotatedExpression -> { expression.baseExpression - ?.let { convertExpression(it, givenParent, requiredType) } + ?.let { convertExpression(it, givenParent, requiredTypes) } ?: expr(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'") diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastResolveProviderService.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastResolveProviderService.kt index a0e71200460..0771dbaf8ab 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastResolveProviderService.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastResolveProviderService.kt @@ -24,6 +24,9 @@ interface KotlinUastResolveProviderService : BaseKotlinUastResolveProviderServic fun getLanguageVersionSettings(element: KtElement): LanguageVersionSettings fun getReferenceVariants(ktElement: KtElement, nameHint: String): Sequence + override val baseKotlinConverter: BaseKotlinConverter + get() = KotlinConverter + override fun convertParent(uElement: UElement): UElement? { return convertParentImpl(uElement) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt deleted file mode 100644 index 710a899425f..00000000000 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinULiteralExpression.kt +++ /dev/null @@ -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 = 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 = listOfNotNull(wrapULiteral(this).sourcePsi) -} diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUReturnExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUReturnExpression.kt index 2bb36398244..b1ec9b7e6f2 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUReturnExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUReturnExpression.kt @@ -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, diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt index c5a0a7b428a..1ad83fe76c6 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt @@ -92,15 +92,6 @@ internal val KOTLIN_CACHED_UELEMENT_KEY = Key.create>("c @Suppress("NOTHING_TO_INLINE") internal inline fun String?.orAnonymous(kind: String = ""): String = this ?: "" -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())