Don't fail on star projections for error types

This commit is contained in:
Andrey Breslav
2013-10-23 15:47:39 +04:00
parent 78a4b6fff6
commit d79403d82c
2 changed files with 19 additions and 1 deletions
@@ -105,7 +105,13 @@ class LazyJavaTypeResolver(
typeConstructor: () -> TypeConstructor,
typeParameterIndex: Int
) : TypeProjectionBase() {
private val typeParameter by c.storageManager.createLazyValue {typeConstructor().getParameters()[typeParameterIndex]}
private val typeParameter by c.storageManager.createLazyValue {
val typeConstructor = typeConstructor()
val parameters = typeConstructor.getParameters()
if (typeParameterIndex >= parameters.size)
ErrorUtils.createErrorTypeParameter("#$typeParameterIndex for ${typeConstructor}")
else parameters[typeParameterIndex]
}
override fun getProjectionKind() = typeParameter.getVariance().eq(OUT_VARIANCE).iif(INVARIANT, OUT_VARIANCE)
override fun getType() = typeParameter.getUpperBoundsAsType()