From 1a1c10251a4d108a0b1b3048339206744ba77595 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 14 Apr 2016 21:13:57 +0300 Subject: [PATCH] Make code fragments files non-physical with event system disabled (KT-12232) Fix "File copy should be non-physical and non-event-system-enabled! Language=Language: kotlin; file=JetFile: fragment.kt of class org.jetbrains.kotlin.psi.KtExpressionCodeFragment" assert. Inspired by Java fragment files #KT-12232 Fixed --- .../frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt index c06a3b6c24b..4273c39bdb2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt @@ -53,6 +53,7 @@ abstract class KtCodeFragment( private var thisType: PsiType? = null private var superType: PsiType? = null private var exceptionHandler: JavaCodeFragment.ExceptionHandler? = null + private var isPhysical = true abstract fun getContentElement(): KtElement? @@ -62,7 +63,7 @@ abstract class KtCodeFragment( override fun getForcedResolveScope() = resolveScope - override fun isPhysical() = true + override fun isPhysical() = isPhysical override fun isValid() = true @@ -72,9 +73,10 @@ abstract class KtCodeFragment( override fun clone(): KtCodeFragment { val clone = cloneImpl(calcTreeElement().clone() as FileElement) as KtCodeFragment + clone.isPhysical = false clone.originalFile = this clone.imports = imports - clone.viewProvider = SingleRootFileViewProvider(PsiManager.getInstance(_project), LightVirtualFile(name, KotlinFileType.INSTANCE, text), true) + clone.viewProvider = SingleRootFileViewProvider(PsiManager.getInstance(_project), LightVirtualFile(name, KotlinFileType.INSTANCE, text), false) clone.viewProvider.forceCachedPsi(clone) return clone }