Create from Usages: Do not suggest on type-mismatched expressions which are not call arguments
#KT-14143 Fixed
This commit is contained in:
@@ -211,6 +211,7 @@ These artifacts include extensions for the types available in the latter JDKs, s
|
|||||||
- [`KT-13933`](https://youtrack.jetbrains.com/issue/KT-13933) Convert Parameter to Receiver: Do not qualify companion members with labeled 'this'
|
- [`KT-13933`](https://youtrack.jetbrains.com/issue/KT-13933) Convert Parameter to Receiver: Do not qualify companion members with labeled 'this'
|
||||||
- [`KT-13942`](https://youtrack.jetbrains.com/issue/KT-13942) Redundant 'toString()' in String Template: Disable for qualified expressions with 'super' receiver
|
- [`KT-13942`](https://youtrack.jetbrains.com/issue/KT-13942) Redundant 'toString()' in String Template: Disable for qualified expressions with 'super' receiver
|
||||||
- [`KT-13878`](https://youtrack.jetbrains.com/issue/KT-13878) Remove Redundant Receiver Parameter: Fix exception receiver removal
|
- [`KT-13878`](https://youtrack.jetbrains.com/issue/KT-13878) Remove Redundant Receiver Parameter: Fix exception receiver removal
|
||||||
|
- [`KT-14143`](https://youtrack.jetbrains.com/issue/KT-14143) Create from Usages: Do not suggest on type-mismatched expressions which are not call arguments
|
||||||
|
|
||||||
##### New features
|
##### New features
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -75,9 +75,7 @@ sealed class CreateCallableFromCallActionFactory<E : KtExpression>(
|
|||||||
Errors.TOO_MANY_ARGUMENTS,
|
Errors.TOO_MANY_ARGUMENTS,
|
||||||
Errors.NONE_APPLICABLE -> diagElement.getNonStrictParentOfType<KtCallExpression>()
|
Errors.NONE_APPLICABLE -> diagElement.getNonStrictParentOfType<KtCallExpression>()
|
||||||
|
|
||||||
Errors.TYPE_MISMATCH -> diagElement
|
Errors.TYPE_MISMATCH -> (diagElement.parent as? KtValueArgument)?.getStrictParentOfType<KtCallExpression>()
|
||||||
.getParentOfTypeAndBranch<KtValueArgument> { getArgumentExpression() }
|
|
||||||
?.getStrictParentOfType<KtCallExpression>()
|
|
||||||
|
|
||||||
else -> throw AssertionError("Unexpected diagnostic: ${diagnostic.factory}")
|
else -> throw AssertionError("Unexpected diagnostic: ${diagnostic.factory}")
|
||||||
} as? KtExpression
|
} as? KtExpression
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
// "Create function 'synchronized'" "false"
|
||||||
|
// ACTION: Convert expression to 'Int'
|
||||||
|
// ERROR: Type mismatch: inferred type is Float but Int was expected
|
||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
var value = 0
|
||||||
|
synchronized(value) {
|
||||||
|
value = <caret>10 / 1f
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2277,6 +2277,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("notExactArgument.kt")
|
||||||
|
public void testNotExactArgument() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createFunction/call/notExactArgument.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("objectMemberFunNoReceiver.kt")
|
@TestMetadata("objectMemberFunNoReceiver.kt")
|
||||||
public void testObjectMemberFunNoReceiver() throws Exception {
|
public void testObjectMemberFunNoReceiver() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createFunction/call/objectMemberFunNoReceiver.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createFunction/call/objectMemberFunNoReceiver.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user