Introduced lazy type and some related optimizations.
This commit is contained in:
+2
-2
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.types.JetTypeImpl
|
||||
import org.jetbrains.jet.lang.types.TypeConstructor
|
||||
import org.jetbrains.jet.lang.types.TypeProjection
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.types.LazyType
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.types.LazyJavaType
|
||||
import org.jetbrains.jet.utils.valuesToMap
|
||||
import org.jetbrains.jet.utils.keysToMap
|
||||
import org.jetbrains.jet.utils.keysToMapExceptNulls
|
||||
@@ -151,7 +151,7 @@ class LazyJavaAnnotationDescriptor(
|
||||
|
||||
val arguments = listOf(TypeProjectionImpl(`type`))
|
||||
|
||||
val javaClassObjectType = object : LazyType(c.storageManager) {
|
||||
val javaClassObjectType = object : LazyJavaType(c.storageManager) {
|
||||
override fun computeTypeConstructor() = jlClass.getTypeConstructor()
|
||||
override fun computeArguments() = arguments
|
||||
override fun computeMemberScope() = jlClass.getMemberScope(arguments)
|
||||
|
||||
+2
-1
@@ -24,8 +24,9 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||
import org.jetbrains.jet.lang.types.AbstractJetType
|
||||
import org.jetbrains.jet.lang.types.ErrorUtils
|
||||
import org.jetbrains.kotlin.util.inn
|
||||
import org.jetbrains.jet.lang.types.LazyType
|
||||
|
||||
abstract class LazyType(storageManager: StorageManager) : AbstractJetType() {
|
||||
abstract class LazyJavaType(storageManager: StorageManager) : AbstractJetType(), LazyType {
|
||||
|
||||
private val _typeConstructor = storageManager.createLazyValue {computeTypeConstructor()}
|
||||
override fun getConstructor(): TypeConstructor = _typeConstructor()
|
||||
+1
-1
@@ -88,7 +88,7 @@ class LazyJavaTypeResolver(
|
||||
private inner class LazyJavaClassifierType(
|
||||
private val javaType: JavaClassifierType,
|
||||
private val attr: JavaTypeAttributes
|
||||
) : LazyType(c.storageManager) {
|
||||
) : LazyJavaType(c.storageManager) {
|
||||
|
||||
private val classifier = c.storageManager.createNullableLazyValue { javaType.getClassifier() }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user