From e63d084cdc6e5a27996e92456041cf4a0406f5d2 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 30 Dec 2020 19:45:56 +0100 Subject: [PATCH] FIR IDE: allow getting light class name from EDT --- .../classes/FirLightClassForClassOrObjectSymbol.kt | 2 +- .../jetbrains/kotlin/idea/asJava/lightClassUtils.kt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/lightClassUtils.kt diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForClassOrObjectSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForClassOrObjectSymbol.kt index 1bcd44dd548..c8e93022ce2 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForClassOrObjectSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForClassOrObjectSymbol.kt @@ -120,7 +120,7 @@ internal abstract class FirLightClassForClassOrObjectSymbol( abstract override fun hashCode(): Int - override fun getName(): String? = classOrObjectSymbol.name.asString() + override fun getName(): String? = allowLightClassesOnEdt { classOrObjectSymbol.name.asString() } override fun hasModifierProperty(@NonNls name: String): Boolean = modifierList?.hasModifierProperty(name) ?: false diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/lightClassUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/lightClassUtils.kt new file mode 100644 index 00000000000..c1d5c771389 --- /dev/null +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/lightClassUtils.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2020 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.kotlin.idea.asJava + +import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT +import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt + +@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class) +internal inline fun allowLightClassesOnEdt(action: () -> E): E = hackyAllowRunningOnEdt(action) \ No newline at end of file