KTIJ-650 [Code completion]: "sealed interface" is for 1.5+ only

This commit is contained in:
Andrei Klunnyi
2020-12-17 15:46:17 +01:00
parent 27ebb6c946
commit 3eb0745b58
22 changed files with 40 additions and 4 deletions
@@ -122,11 +122,13 @@ object KeywordCompletion {
fun complete(position: PsiElement, prefixMatcher: PrefixMatcher, isJvmModule: Boolean, consumer: (LookupElement) -> Unit) {
if (!GENERAL_FILTER.isAcceptable(position, position)) return
val sealedInterfacesEnabled = position.languageVersionSettings.supportsFeature(LanguageFeature.SealedInterfaces)
val parserFilter = buildFilter(position)
for (keywordToken in ALL_KEYWORDS) {
val nextKeywords = keywordToken.getNextPossibleKeywords(position) ?: setOf(null)
nextKeywords.forEach {
if (keywordToken == SEALED_KEYWORD && it == INTERFACE_KEYWORD && !sealedInterfacesEnabled) return@forEach
handleCompoundKeyword(position, keywordToken, it, isJvmModule, prefixMatcher, parserFilter, consumer)
}
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class MouseMovedEventArgs
{
public val X : Int = 0
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class A {
fun foo() {
bar()
@@ -33,8 +33,6 @@ class B {
// EXIST: infix
// EXIST: sealed class
// EXIST: sealed class AfterClasses_LangLevel10
// EXIST: sealed interface AfterClasses_LangLevel10
// EXIST: sealed interface
// EXIST: data class
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel10(...)", "attributes":"bold" }
// EXIST: inline
@@ -33,8 +33,6 @@ class B {
// EXIST: infix
// EXIST: sealed class
// EXIST: sealed class AfterClasses_LangLevel11
// EXIST: sealed interface AfterClasses_LangLevel11
// EXIST: sealed interface
// EXIST: data class
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel11(...)", "attributes":"bold" }
// EXIST: inline
+2
View File
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class A {
fun foo() {
bar()
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
fun foo() {
bar()
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
annotation class Test {
<caret>
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
public class Test {
<caret>
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class TestClass {
<caret>
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
enum class Test {
;
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
interface Test {
<caret>
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
object Test {
<caret>
}
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
package Test
<caret>
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class Some {
var a : Int
<caret>
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class Some {
var a : Int = 1
<caret>
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class Some {
var a : Int
get() = 0
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
seal<caret>
// EXIST: "sealed class SealedWithName"
// EXIST: "sealed interface SealedWithName"
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
class OuterClass {
seal<caret>
}
+2
View File
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
<caret>
// EXIST: abstract
+2
View File
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
<caret>
// EXIST: abstract
+2
View File
@@ -1,3 +1,5 @@
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
<caret>
// EXIST: abstract