Quick Fixes: Fix AssertionError on rendering type parameter
#KT-17404 Fixed
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic;
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils;
|
||||
@@ -162,8 +163,9 @@ public class QuickFixUtil {
|
||||
}
|
||||
|
||||
public static String renderTypeWithFqNameOnClash(KotlinType type, String nameToCheckAgainst) {
|
||||
FqName typeFqName = DescriptorUtils.getFqNameSafe(DescriptorUtils.getClassDescriptorForType(type));
|
||||
FqName fqNameToCheckAgainst = new FqName(nameToCheckAgainst);
|
||||
ClassifierDescriptor typeClassifierDescriptor = type.getConstructor().getDeclarationDescriptor();
|
||||
FqName typeFqName = typeClassifierDescriptor != null ? DescriptorUtils.getFqNameSafe(typeClassifierDescriptor) : fqNameToCheckAgainst;
|
||||
DescriptorRenderer renderer = typeFqName.shortName().equals(fqNameToCheckAgainst.shortName())
|
||||
? IdeDescriptorRenderers.SOURCE_CODE
|
||||
: IdeDescriptorRenderers.SOURCE_CODE_SHORT_NAMES_IN_TYPES;
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Change type from 'Int' to 'X'" "true"
|
||||
// ERROR: Cannot use 'X' as reified type parameter. Use a class instead.
|
||||
inline fun <reified T> inlineReified0(f: (T) -> T) = {}
|
||||
fun <X> callInlineReified3() = inlineReified0<X>({ x: <caret>Int -> x })
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Change type from 'Int' to 'X'" "true"
|
||||
// ERROR: Cannot use 'X' as reified type parameter. Use a class instead.
|
||||
inline fun <reified T> inlineReified0(f: (T) -> T) = {}
|
||||
fun <X> callInlineReified3() = inlineReified0<X>({ x: X -> x })
|
||||
@@ -9707,6 +9707,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt17404.kt")
|
||||
public void testKt17404() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/typeMismatch/kt17404.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("letClassImplementAdditionalInterface.kt")
|
||||
public void testLetClassImplementAdditionalInterface() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/typeMismatch/letClassImplementAdditionalInterface.kt");
|
||||
|
||||
Reference in New Issue
Block a user