Refactoring. Create WrappedType.

This commit is contained in:
Stanislav Erokhin
2016-05-24 17:36:45 +03:00
parent 957bae18be
commit 7bc2c55d12
11 changed files with 128 additions and 128 deletions
@@ -104,10 +104,7 @@ class SpecifyTypeExplicitlyIntention : SelfTargetingIntention<KtCallableDeclarat
}
}
object: DelegatingType() {
override fun getDelegate() = it
override val arguments: List<TypeProjection> get() = newArguments
}
KotlinTypeFactory.simpleType(it.asSimpleType(), arguments = newArguments)
}
.ifEmpty { return null }
return object : ChooseValueExpression<KotlinType>(types, types.first()) {
@@ -54,9 +54,7 @@ private fun KotlinType.render(typeParameterNameMap: Map<TypeParameterDescriptor,
val typeParameter = it.key
var wrappingTypeParameter: TypeParameterDescriptor? = null
var wrappingTypeConstructor: TypeConstructor
wrappingTypeConstructor = object : TypeConstructor by typeParameter.typeConstructor {
val wrappingTypeConstructor = object : TypeConstructor by typeParameter.typeConstructor {
override fun getDeclarationDescriptor() = wrappingTypeParameter
}
@@ -65,11 +63,7 @@ private fun KotlinType.render(typeParameterNameMap: Map<TypeParameterDescriptor,
override fun getTypeConstructor() = wrappingTypeConstructor
}
val wrappingType = object : DelegatingType() {
override fun getDelegate(): KotlinType? = typeParameter.defaultType
override val constructor: TypeConstructor get() = wrappingTypeConstructor
}
val wrappingType = KotlinTypeFactory.simpleType(typeParameter.defaultType, constructor = wrappingTypeConstructor)
TypeProjectionImpl(wrappingType)
}
.mapKeys { it.key.typeConstructor }