Fixing assertion failure in a quick-fix
Exception fixed: com.intellij.psi.PsiInvalidElementAccessException
Profiler uses loggers

This allows us to leave profiler calls in production code
Using lazy resolve when building light classes
Force-resolve only relevant declarations
Assertion messages added
Support recursion-tolerant nullable values
All other values are made recursion-intolerant
Recursion-tolerant notnull lazy values
Forced resolution of all contents enhanced
Field made final
Common logic extracted from lazy type implementations
 Annotation classes @ReadOnly and @Mutable added to runtime (to get into the standard library)
Collections in interfaces marked @ReadOnly
Use wrapping instead of copying when creating nullable/non-null types

 Why wrapping is better:
1. It's requires less memory: a copy has many fields, while a wrapper has only one
2. It preserves laziness of types
Cache files in the provider

This is required when, for example, very many exceptions are thrown in tests, and the console goes crazy calling JetExceptionFilter
Chaching results of findClasses in JavaElementFinder

Quieries to this method appear very high in the profile when there are many exceptions in the console
Suppress warnings when compiling runtime for tests
~ before converting
++ converted
++