Introduce custom Java model implementation for class-files

It's only used for CLI compiler, and it should improve performance
of loading Java descriptors from class-files

For IntelliJ, it leads to 10-15% percent speedup of Kotlin Builder

Before this change, we were using a Java model based on Java PSI that
also read class files, but do it less effectively since it performs
some extra work, that we don't need, e.g. eagerly reading all
the inner classes
This commit is contained in:
Denis Zharkov
2017-04-17 12:12:00 +03:00
parent 88950521a8
commit d65af8f951
14 changed files with 1182 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
package test;
public class TopLevel$Class {
public void foo(TopLevel$Class other) {}
}

View File

@@ -0,0 +1,6 @@
package test
public open class `TopLevel$Class` {
public constructor `TopLevel$Class`()
public open fun foo(/*0*/ test.`TopLevel$Class`!): kotlin.Unit
}

View File

@@ -0,0 +1,6 @@
package test
public open class `TopLevel$Class` {
public constructor `TopLevel$Class`()
public open fun foo(/*0*/ p0: test.TopLevel.Class!): kotlin.Unit
}