9273c6326e
When listing members in a class, we need to resolve super types. But if a super type is defined in another file, this file may not have been resolved. In this case, listing the members would require resolving the unresolved file, which can only be done in a write lock. Before this change, KtFirScopeProvider only acquire the read lock, which then causes read/write deadlock when the logic tries to further resolve super types defined in other files. This change makes KtFirScopeProvider acquire a write lock in the beginning so resolving can happen correctly later.