Do not build inner type for error classes
#KT-10409 Fixed
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors
|
||||
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.types.*
|
||||
import org.jetbrains.kotlin.types.error.MissingDependencyErrorClass
|
||||
import java.util.*
|
||||
@@ -65,7 +66,7 @@ fun KotlinType.buildPossiblyInnerType(): PossiblyInnerType? {
|
||||
}
|
||||
|
||||
private fun KotlinType.buildPossiblyInnerType(classDescriptor: ClassDescriptor?, index: Int): PossiblyInnerType? {
|
||||
if (classDescriptor == null) return null
|
||||
if (classDescriptor == null || ErrorUtils.isError(classDescriptor)) return null
|
||||
|
||||
val toIndex = classDescriptor.declaredTypeParameters.size + index
|
||||
val argumentsSubList = arguments.subList(index, toIndex)
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Make 'IterablePipeline' abstract" "true"
|
||||
// ERROR: 'pipe' overrides nothing
|
||||
// ERROR: Type argument expected
|
||||
|
||||
// Actually this test is about getting rid of assertion happenning while creating quick fixes
|
||||
// See KT-10409
|
||||
interface Pipeline<TPipeline> {
|
||||
fun pipe(block: Pipeline<TPipeline, String>)
|
||||
}
|
||||
|
||||
<caret>class IterablePipeline<T> : Pipeline<T> {
|
||||
override fun pipe(block: Pipeline<T>) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// "Make 'IterablePipeline' abstract" "true"
|
||||
// ERROR: 'pipe' overrides nothing
|
||||
// ERROR: Type argument expected
|
||||
|
||||
// Actually this test is about getting rid of assertion happenning while creating quick fixes
|
||||
// See KT-10409
|
||||
interface Pipeline<TPipeline> {
|
||||
fun pipe(block: Pipeline<TPipeline, String>)
|
||||
}
|
||||
|
||||
abstract class IterablePipeline<T> : Pipeline<T> {
|
||||
override fun pipe(block: Pipeline<T>) {
|
||||
}
|
||||
}
|
||||
@@ -4853,6 +4853,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt10409.kt")
|
||||
public void testKt10409() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/kt10409.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("nestedClassNotAllowed.kt")
|
||||
public void testNestedClassNotAllowed() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/nestedClassNotAllowed.kt");
|
||||
|
||||
Reference in New Issue
Block a user