K2 UAST: static modifier of fake PSI for inline function from binary deps

GitOrigin-RevId: 0beb538ff3af22c14f5d381625533a339db4a9f5
This commit is contained in:
Jinseong Jeon
2024-08-06 11:08:22 -07:00
committed by intellij-monorepo-bot
parent 1e49336fc1
commit d9d1f0fe08
2 changed files with 15 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.uast.test.common.kotlin
import com.intellij.lang.jvm.JvmModifier
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.io.FileUtil
import com.intellij.platform.uast.testFramework.env.findElementByText
@@ -2327,12 +2328,14 @@ interface UastResolveApiFixtureTestBase {
TestCase.assertEquals("mock", resolved!!.name)
if (first) {
TestCase.assertEquals("Mock", resolved.containingClass?.name)
TestCase.assertFalse(resolved.hasModifier(JvmModifier.STATIC))
first = false
} else {
TestCase.assertEquals(
if (withJvmName) "Mocking" else "MockingKt",
resolved.containingClass?.name
)
TestCase.assertTrue(resolved.hasModifier(JvmModifier.STATIC))
}
TestCase.assertNotNull(resolved.returnType)
TestCase.assertEquals("MyClass", resolved.returnType!!.canonicalText)

View File

@@ -6,6 +6,7 @@ import com.intellij.psi.impl.light.LightModifierList
import com.intellij.psi.impl.light.LightParameterListBuilder
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.symbols.KaNamedFunctionSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolLocation
import org.jetbrains.kotlin.analysis.api.symbols.KaTypeParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KaSymbolPointer
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
@@ -47,6 +48,17 @@ internal class UastFakeDeserializedSymbolLightMethod(
containingClass
) {
init {
analyzeForUast(context) {
val functionSymbol = original.restoreSymbol()
if (functionSymbol?.location == KaSymbolLocation.TOP_LEVEL ||
functionSymbol?.isStatic == true
) {
addModifier(PsiModifier.STATIC)
}
}
}
private val returnTypePart = UastLazyPart<PsiType?>()
private val _returnType: PsiType?