提交 11a3126c 编写于 作者: I Ilya Kirillov

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
上级 a0ad85e2
...@@ -282,7 +282,7 @@ private class FirSupertypeResolverVisitor( ...@@ -282,7 +282,7 @@ private class FirSupertypeResolverVisitor(
supertypeRefs: List<FirTypeRef> supertypeRefs: List<FirTypeRef>
): List<FirTypeRef> { ): List<FirTypeRef> {
return resolveSpecificClassLikeSupertypes(classLikeDeclaration) { transformer, scope -> return resolveSpecificClassLikeSupertypes(classLikeDeclaration) { transformer, scope ->
supertypeRefs.mapTo(mutableListOf()) { ArrayList(supertypeRefs).mapTo(mutableListOf()) {
val superTypeRef = transformer.transformTypeRef(it, scope).single val superTypeRef = transformer.transformTypeRef(it, scope).single
if (superTypeRef.coneTypeSafe<ConeTypeParameterType>() != null) if (superTypeRef.coneTypeSafe<ConeTypeParameterType>() != null)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册