initial
integration into codegen system
Tests updated after integration with optimization subsystem
Fixes after integration tests
Specialized code generation for safe qualified expression when it's within elvis or another safe-call. In such cases instead of generating ACONST_NULL, if reciever is null, just fall back to null-handler's label of the outer expression
Redundant null check of boxed values detecting and cleaing out
Minor, added Contract to JetPsiUtil.deparenthesize()
Minor, fixes after review
Added unsafe opcodes check for boxed values
Dealing with case when boxing value is being stored in a variable
dealing with ranges
Added wrappers classes names to JvmPrimitiveType
Fixes after review
Support for IFNONNULL opcode in RedundantNullCheckMethodTransformer
Do not remove boxing when possibly unsuccessful CHECKCAST is performed
Optimization of type conversion with boxed values (transform Integer.valueOf(x). .. .longValue() -> I2L and etc)
Refactoring: extracted specific logic into RedundantBoxedValuesCollection class
Refactoring: extracted common logic of working with local variable table into getValuesStoredOrLoadedToVariable
Refactoring: reordering methods to usage places
Changed strategy from enumeration of unsafe operations to permitted + INSTANCEOF added