From dbccd4d459866826b82d266ca01f93aa847d9fc0 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 17 May 2021 11:17:42 +0300 Subject: [PATCH] [FIR] Properly acquire module data in FirSignatureEnhancement --- .../kotlin/fir/java/enhancement/SignatureEnhancement.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 03e2a6785f8..70ceada5b60 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -37,7 +37,12 @@ class FirSignatureEnhancement( private val session: FirSession, private val overridden: FirSimpleFunction.() -> List> ) { - private val moduleData = session.moduleData + /* + * FirSignatureEnhancement may be created with library session which doesn't have single module data, + * so owner is a only place where module data can be obtained. However it's guaranteed that `owner` + * was created for same session as one passed to constructor, so it's safe to use owners module data + */ + private val moduleData = owner.moduleData private val javaTypeParameterStack: JavaTypeParameterStack = if (owner is FirJavaClass) owner.javaTypeParameterStack else JavaTypeParameterStack.EMPTY