KTIJ-650 [Code completion]: "sealed interface" is for 1.5+ only
This commit is contained in:
@@ -122,11 +122,13 @@ object KeywordCompletion {
|
|||||||
|
|
||||||
fun complete(position: PsiElement, prefixMatcher: PrefixMatcher, isJvmModule: Boolean, consumer: (LookupElement) -> Unit) {
|
fun complete(position: PsiElement, prefixMatcher: PrefixMatcher, isJvmModule: Boolean, consumer: (LookupElement) -> Unit) {
|
||||||
if (!GENERAL_FILTER.isAcceptable(position, position)) return
|
if (!GENERAL_FILTER.isAcceptable(position, position)) return
|
||||||
|
val sealedInterfacesEnabled = position.languageVersionSettings.supportsFeature(LanguageFeature.SealedInterfaces)
|
||||||
|
|
||||||
val parserFilter = buildFilter(position)
|
val parserFilter = buildFilter(position)
|
||||||
for (keywordToken in ALL_KEYWORDS) {
|
for (keywordToken in ALL_KEYWORDS) {
|
||||||
val nextKeywords = keywordToken.getNextPossibleKeywords(position) ?: setOf(null)
|
val nextKeywords = keywordToken.getNextPossibleKeywords(position) ?: setOf(null)
|
||||||
nextKeywords.forEach {
|
nextKeywords.forEach {
|
||||||
|
if (keywordToken == SEALED_KEYWORD && it == INTERFACE_KEYWORD && !sealedInterfacesEnabled) return@forEach
|
||||||
handleCompoundKeyword(position, keywordToken, it, isJvmModule, prefixMatcher, parserFilter, consumer)
|
handleCompoundKeyword(position, keywordToken, it, isJvmModule, prefixMatcher, parserFilter, consumer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class MouseMovedEventArgs
|
class MouseMovedEventArgs
|
||||||
{
|
{
|
||||||
public val X : Int = 0
|
public val X : Int = 0
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
fun foo() {
|
fun foo() {
|
||||||
bar()
|
bar()
|
||||||
|
|||||||
@@ -33,8 +33,6 @@ class B {
|
|||||||
// EXIST: infix
|
// EXIST: infix
|
||||||
// EXIST: sealed class
|
// EXIST: sealed class
|
||||||
// EXIST: sealed class AfterClasses_LangLevel10
|
// EXIST: sealed class AfterClasses_LangLevel10
|
||||||
// EXIST: sealed interface AfterClasses_LangLevel10
|
|
||||||
// EXIST: sealed interface
|
|
||||||
// EXIST: data class
|
// EXIST: data class
|
||||||
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel10(...)", "attributes":"bold" }
|
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel10(...)", "attributes":"bold" }
|
||||||
// EXIST: inline
|
// EXIST: inline
|
||||||
|
|||||||
@@ -33,8 +33,6 @@ class B {
|
|||||||
// EXIST: infix
|
// EXIST: infix
|
||||||
// EXIST: sealed class
|
// EXIST: sealed class
|
||||||
// EXIST: sealed class AfterClasses_LangLevel11
|
// EXIST: sealed class AfterClasses_LangLevel11
|
||||||
// EXIST: sealed interface AfterClasses_LangLevel11
|
|
||||||
// EXIST: sealed interface
|
|
||||||
// EXIST: data class
|
// EXIST: data class
|
||||||
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel11(...)", "attributes":"bold" }
|
// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel11(...)", "attributes":"bold" }
|
||||||
// EXIST: inline
|
// EXIST: inline
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
fun foo() {
|
fun foo() {
|
||||||
bar()
|
bar()
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
bar()
|
bar()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
annotation class Test {
|
annotation class Test {
|
||||||
<caret>
|
<caret>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
public class Test {
|
public class Test {
|
||||||
|
|
||||||
<caret>
|
<caret>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class TestClass {
|
class TestClass {
|
||||||
<caret>
|
<caret>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
enum class Test {
|
enum class Test {
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
interface Test {
|
interface Test {
|
||||||
<caret>
|
<caret>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
object Test {
|
object Test {
|
||||||
<caret>
|
<caret>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
package Test
|
package Test
|
||||||
|
|
||||||
<caret>
|
<caret>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class Some {
|
class Some {
|
||||||
var a : Int
|
var a : Int
|
||||||
<caret>
|
<caret>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class Some {
|
class Some {
|
||||||
var a : Int = 1
|
var a : Int = 1
|
||||||
<caret>
|
<caret>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class Some {
|
class Some {
|
||||||
var a : Int
|
var a : Int
|
||||||
get() = 0
|
get() = 0
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
seal<caret>
|
seal<caret>
|
||||||
// EXIST: "sealed class SealedWithName"
|
// EXIST: "sealed class SealedWithName"
|
||||||
// EXIST: "sealed interface SealedWithName"
|
// EXIST: "sealed interface SealedWithName"
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
class OuterClass {
|
class OuterClass {
|
||||||
seal<caret>
|
seal<caret>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
<caret>
|
<caret>
|
||||||
|
|
||||||
// EXIST: abstract
|
// EXIST: abstract
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
<caret>
|
<caret>
|
||||||
|
|
||||||
// EXIST: abstract
|
// EXIST: abstract
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces -XXLanguage:+MultiPlatformProjects
|
||||||
|
|
||||||
<caret>
|
<caret>
|
||||||
|
|
||||||
// EXIST: abstract
|
// EXIST: abstract
|
||||||
|
|||||||
Reference in New Issue
Block a user