Forbid create expected on class member when class has no expected itself
Related to KT-27075
This commit is contained in:
@@ -126,6 +126,10 @@ sealed class CreateExpectedFix<out D : KtNamedDeclaration>(
|
||||
|
||||
val containingClass = declaration.containingClassOrObject
|
||||
val expectedContainingClass = containingClass?.liftToExpected() as? KtClassOrObject
|
||||
if (containingClass != null && expectedContainingClass == null) {
|
||||
// In this case fix should be invoked on containingClass
|
||||
return emptyList()
|
||||
}
|
||||
// If there is already an expected class, we suggest only for its module,
|
||||
// otherwise we suggest for all relevant expected modules
|
||||
val expectedModules = expectedContainingClass?.module?.let { listOf(it) }
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
// My: to be implemented
|
||||
// DISABLE-ERRORS
|
||||
@@ -0,0 +1,24 @@
|
||||
// "Create expected function in common module testModule_Common" "false"
|
||||
// ACTION: Convert member to extension
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Move to companion object
|
||||
// ACTION: Remove 'actual' modifier
|
||||
// ACTION: Remove explicit type specification
|
||||
// DISABLE-ERRORS
|
||||
|
||||
actual class My {
|
||||
actual fun <caret>foo(param: String): Int = 42
|
||||
|
||||
actual fun String.bar(y: Double): Boolean = true
|
||||
|
||||
actual fun baz() {}
|
||||
|
||||
actual constructor(flag: Boolean) {}
|
||||
|
||||
actual val isGood: Boolean
|
||||
get() = true
|
||||
actual var status: Int
|
||||
get() = 0
|
||||
set(value) {}
|
||||
|
||||
}
|
||||
+5
@@ -274,6 +274,11 @@ public class QuickFixMultiModuleTestGenerated extends AbstractQuickFixMultiModul
|
||||
runTest("idea/testData/multiModuleQuickFix/expectClassFunction/");
|
||||
}
|
||||
|
||||
@TestMetadata("expectClassNoAccessOnMember")
|
||||
public void testExpectClassNoAccessOnMember() throws Exception {
|
||||
runTest("idea/testData/multiModuleQuickFix/expectClassNoAccessOnMember/");
|
||||
}
|
||||
|
||||
@TestMetadata("expectClassProperty")
|
||||
public void testExpectClassProperty() throws Exception {
|
||||
runTest("idea/testData/multiModuleQuickFix/expectClassProperty/");
|
||||
|
||||
Reference in New Issue
Block a user