Moved getPackageFilesWithCallables to frontend.java and reused it.
Writing/reading constants map fully to avoid hash collisions.
Extracted proto map implementation to inner class and simplified.
Extracted constants map implementation to inner class.
Extracted package part map implementation to inner class.
hashCode() fixed for AbstractClassTypeConstructor
Pseudocode: Translate instruction classes to Kotlin
Pseudocode: Divide instruction classes into packages
Pseudocode: Introduce ValuedInstruction
Pseudocode: Add receiver values to call instructions. Refactor InstructionWithReceiver
Pseudocode: Introduce "merge" instruction
Pseudocode: Record resolved information in read/write instructions. Introduce AccessValueInstruction
Pseudocode: Add explicit type predicates to magic instructions
Minor: Use varargs instead of lists
Pseudocode: Have builder return instructions rather than output values
Pseudocode: Do not bind call value to callee expressions
Minor: Remove redundant cast
Pseudocode: Generate pseudo-values for implicit receivers
Pseudocode: Copy value of JetThisExpression to enclosed JetSimpleNameExpression
Pseudocode: Generate resolved-call-based read instructions for this-expressions