Completion for sealed class inheritors and a pair of tests

This commit is contained in:
Mikhail Glukhikh
2015-09-30 15:52:23 +03:00
parent 7a99b3872b
commit 6f7d9459fa
4 changed files with 41 additions and 1 deletions
@@ -292,7 +292,7 @@ public open class KotlinLightClassForExplicitDeclaration(
// FINAL
if (isAbstract()) {
if (isAbstract() || isSealed()) {
psiModifiers.add(PsiModifier.ABSTRACT)
}
else if (!(classOrObject.hasModifier(OPEN_KEYWORD) || (classOrObject is JetClass && classOrObject.isEnum()))) {
@@ -308,6 +308,8 @@ public open class KotlinLightClassForExplicitDeclaration(
private fun isAbstract(): Boolean = classOrObject.hasModifier(ABSTRACT_KEYWORD) || isInterface
private fun isSealed(): Boolean = classOrObject.hasModifier(SEALED_KEYWORD)
override fun hasModifierProperty(@NonNls name: String): Boolean = getModifierList().hasModifierProperty(name)
override fun isDeprecated(): Boolean {
+13
View File
@@ -0,0 +1,13 @@
package sample
abstract class Foo {
object X: Foo()
class Y: Foo()
}
fun foo(){
val f : Foo = <caret>
}
// EXIST: { lookupString:"X", itemText:"X", tailText:" (sample.Foo)" }
// EXIST: { lookupString:"Y", itemText:"Y", tailText:"() (sample.Foo)" }
+13
View File
@@ -0,0 +1,13 @@
package sample
sealed class Foo {
object X: Foo()
class Y: Foo()
}
fun foo(){
val f : Foo = <caret>
}
// EXIST: { lookupString:"X", itemText:"X", tailText:" (sample.Foo)" }
// EXIST: { lookupString:"Y", itemText:"Y", tailText:"() (sample.Foo)" }
@@ -31,6 +31,12 @@ import java.util.regex.Pattern;
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class JvmSmartCompletionTestGenerated extends AbstractJvmSmartCompletionTest {
@TestMetadata("AbstractMembers.kt")
public void testAbstractMembers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smart/AbstractMembers.kt");
doTest(fileName);
}
@TestMetadata("AfterEmptyArgument.kt")
public void testAfterEmptyArgument() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smart/AfterEmptyArgument.kt");
@@ -449,6 +455,12 @@ public class JvmSmartCompletionTestGenerated extends AbstractJvmSmartCompletionT
doTest(fileName);
}
@TestMetadata("SealedMembers.kt")
public void testSealedMembers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smart/SealedMembers.kt");
doTest(fileName);
}
@TestMetadata("SkipDeclarationsOfType.kt")
public void testSkipDeclarationsOfType() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smart/SkipDeclarationsOfType.kt");