From 11a3126c8ce0860480efe756cf6344e0675e1fc4 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 11 Jan 2021 22:18:44 +0100 Subject: [PATCH] FIR: copy class supertypes list on iterating while calculating supertypes This list is backed by mutable list and during iterating on it we can resolve supertypes of that class via IDE light classes as IJ Java resolve may resolve a lot of stuff by fir light classes This causes ConcurrentModificationException --- .../kotlin/fir/resolve/transformers/FirSupertypesResolution.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index 7a10ae85036..a583654d320 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -282,7 +282,7 @@ private class FirSupertypeResolverVisitor( supertypeRefs: List ): List { return resolveSpecificClassLikeSupertypes(classLikeDeclaration) { transformer, scope -> - supertypeRefs.mapTo(mutableListOf()) { + ArrayList(supertypeRefs).mapTo(mutableListOf()) { val superTypeRef = transformer.transformTypeRef(it, scope).single if (superTypeRef.coneTypeSafe() != null)