diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt
index da041aaebe7..3b155165690 100644
--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt
+++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt
@@ -9,15 +9,16 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
import org.jetbrains.kotlin.diagnostics.Errors
+import org.jetbrains.kotlin.utils.threadLocal
import java.util.*
class GlobalInlineContext(private val diagnostics: DiagnosticSink) {
// Ordered set of declarations and inline calls being generated right now.
// No call in it should point to a declaration that's before it in the stack.
- private val inlineCallsAndDeclarations = LinkedList()
- private val inlineDeclarationSet = mutableSetOf()
+ private val inlineCallsAndDeclarations by threadLocal { LinkedList() }
+ private val inlineDeclarationSet by threadLocal { mutableSetOf() }
- private val typesUsedInInlineFunctions = LinkedList>()
+ private val typesUsedInInlineFunctions by threadLocal { LinkedList>() }
fun enterDeclaration(descriptor: CallableDescriptor) {
assert(descriptor.original !in inlineDeclarationSet) { "entered inlining cycle on $descriptor" }