More reliable testing of keyword completion (introduced directive "NOTHING_ELSE" instead of "NUMBER")
This commit is contained in:
@@ -16,6 +16,6 @@ class Derived: Base<String>() {
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: funInBase, funWithOverride, funWithoutOverride
|
// EXIST: funInBase, funWithOverride, funWithoutOverride
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|
||||||
// RUNTIME_TYPE: Derived
|
// RUNTIME_TYPE: Derived
|
||||||
|
|||||||
@@ -20,6 +20,6 @@ class C: B() {
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 2
|
// INVOCATION_COUNT: 2
|
||||||
// EXIST: funA, funAp, funB, funBp, funC, funCp
|
// EXIST: funA, funAp, funB, funBp, funC, funCp
|
||||||
// NUMBER: 6
|
// NOTHING_ELSE: true
|
||||||
|
|
||||||
// RUNTIME_TYPE: C
|
// RUNTIME_TYPE: C
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ fun Base.funExtBase() { }
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: funExtBase, funExtDerived
|
// EXIST: funExtBase, funExtDerived
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|
||||||
|
|
||||||
// RUNTIME_TYPE: Derived
|
// RUNTIME_TYPE: Derived
|
||||||
@@ -18,7 +18,7 @@ class Derived: Base() {
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: funInBase, funWithOverride, funWithoutOverride, funInDerived
|
// EXIST: funInBase, funWithOverride, funWithoutOverride, funInDerived
|
||||||
// NUMBER: 4
|
// NOTHING_ELSE: true
|
||||||
|
|
||||||
|
|
||||||
// RUNTIME_TYPE: Derived
|
// RUNTIME_TYPE: Derived
|
||||||
@@ -7,4 +7,4 @@ class Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: util
|
// EXIST: util
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ fun foo() {
|
|||||||
|
|
||||||
// EXIST: ext1
|
// EXIST: ext1
|
||||||
// EXIST: ext2
|
// EXIST: ext2
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun firstFun() {
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: Testing
|
// EXIST: Testing
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -15,4 +15,4 @@ fun g(a: A) {
|
|||||||
|
|
||||||
// EXIST: foo
|
// EXIST: foo
|
||||||
// EXIST: foo1
|
// EXIST: foo1
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ fun test() = small(paramFirst = param<caret>)
|
|||||||
// EXIST: paramTest
|
// EXIST: paramTest
|
||||||
// ABSENT: {"lookupString":"paramFirst","tailText":" Int","itemText":"paramFirst ="}
|
// ABSENT: {"lookupString":"paramFirst","tailText":" Int","itemText":"paramFirst ="}
|
||||||
// ABSENT: paramSecond
|
// ABSENT: paramSecond
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun test(p: Int) = foo(12, third = "", <caret>)
|
|||||||
// ABSENT: first
|
// ABSENT: first
|
||||||
// ABSENT: third
|
// ABSENT: third
|
||||||
// EXIST: second
|
// EXIST: second
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ fun test() = small(param<caret>First = 12)
|
|||||||
// EXIST: paramSecond
|
// EXIST: paramSecond
|
||||||
// EXIST: paramTest
|
// EXIST: paramTest
|
||||||
|
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun firstFun() {
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: { lookupString:"toLinkedList", itemText:"toLinkedList", tailText:"() for Iterable<T> in kotlin" }
|
// EXIST: { lookupString:"toLinkedList", itemText:"toLinkedList", tailText:"() for Iterable<T> in kotlin" }
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ val x = InputStreamReader<caret>
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 2
|
// INVOCATION_COUNT: 2
|
||||||
// EXIST: { lookupString:"InputStreamReader", tailText:" (java.io)" }
|
// EXIST: { lookupString:"InputStreamReader", tailText:" (java.io)" }
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ val x = LinesSequence<caret>
|
|||||||
|
|
||||||
// INVOCATION_COUNT: 2
|
// INVOCATION_COUNT: 2
|
||||||
// EXIST: { lookupString:"LinesSequence", tailText:" (kotlin.io)" }
|
// EXIST: { lookupString:"LinesSequence", tailText:" (kotlin.io)" }
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -12,4 +12,4 @@ fun firstFun() {
|
|||||||
// EXIST: testingExpectedFunction
|
// EXIST: testingExpectedFunction
|
||||||
// ABSENT: testingUnexpectedFunction
|
// ABSENT: testingUnexpectedFunction
|
||||||
|
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ fun firstFun() {
|
|||||||
// EXIST: helloFunPreventAutoInsert
|
// EXIST: helloFunPreventAutoInsert
|
||||||
// EXIST: helloWithParams
|
// EXIST: helloWithParams
|
||||||
// ABSENT: helloFake
|
// ABSENT: helloFake
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -4,4 +4,4 @@ class A : NotImported<caret>
|
|||||||
|
|
||||||
// AUTOCOMPLETE_SETTING: true
|
// AUTOCOMPLETE_SETTING: true
|
||||||
// EXIST: NotImportedClass
|
// EXIST: NotImportedClass
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -6,4 +6,4 @@ fun f() {
|
|||||||
|
|
||||||
// EXIST: extFun1
|
// EXIST: extFun1
|
||||||
// EXIST: extFun2
|
// EXIST: extFun2
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
// this test tests correct substitution equality checking for generic functions
|
// this test tests correct substitution equality checking for generic functions
|
||||||
import dependency.pair
|
import java.io.InputStreamReader
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
1 pai<caret>
|
1 pai<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: pair
|
// EXIST: pair
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -11,4 +11,4 @@ class C {
|
|||||||
// EXIST: helloProp
|
// EXIST: helloProp
|
||||||
// EXIST: helloForC
|
// EXIST: helloForC
|
||||||
// ABSENT: helloFake
|
// ABSENT: helloFake
|
||||||
// NUMBER: 4
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ fun firstFun(p: () -> Unit) {
|
|||||||
// EXIST: helloAny
|
// EXIST: helloAny
|
||||||
// ABSENT: helloFun3
|
// ABSENT: helloFun3
|
||||||
// ABSENT: helloFun4
|
// ABSENT: helloFun4
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -10,4 +10,4 @@ fun firstFun(p: String.() -> Unit) {
|
|||||||
// ABSENT: helloFun4
|
// ABSENT: helloFun4
|
||||||
// ABSENT: helloFun5
|
// ABSENT: helloFun5
|
||||||
// EXIST: helloAny
|
// EXIST: helloAny
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -6,4 +6,4 @@ fun firstFun(x: third.Dependency) {
|
|||||||
|
|
||||||
// EXIST: helloFun
|
// EXIST: helloFun
|
||||||
// EXIST: helloFunGeneric
|
// EXIST: helloFunGeneric
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ fun firstFun() {
|
|||||||
// EXIST: { lookupString: "helloProp2", attributes: "bold" }
|
// EXIST: { lookupString: "helloProp2", attributes: "bold" }
|
||||||
// ABSENT: helloProp3
|
// ABSENT: helloProp3
|
||||||
// ABSENT: helloProp4
|
// ABSENT: helloProp4
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -34,4 +34,5 @@ class MouseMovedEventArgs
|
|||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 27
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -37,4 +37,6 @@ class B {
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: vararg
|
// EXIST: vararg
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 22
|
// EXIST: companion
|
||||||
|
/*TODO*/
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -37,4 +37,5 @@ class A {
|
|||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 24
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ class A(x: Int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: this, super
|
// EXIST: this, super
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ fun foo() {
|
|||||||
// EXIST: { lookupString: "break@myDo", itemText: "break", tailText: "@myDo", attributes: "bold" }
|
// EXIST: { lookupString: "break@myDo", itemText: "break", tailText: "@myDo", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "break@myWhile", itemText: "break", tailText: "@myWhile", attributes: "bold" }
|
// EXIST: { lookupString: "break@myWhile", itemText: "break", tailText: "@myWhile", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "break@myFor", itemText: "break", tailText: "@myFor", attributes: "bold" }
|
// EXIST: { lookupString: "break@myFor", itemText: "break", tailText: "@myFor", attributes: "bold" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun foo() {
|
|||||||
// EXIST: as
|
// EXIST: as
|
||||||
// EXIST: in
|
// EXIST: in
|
||||||
// EXIST: is
|
// EXIST: is
|
||||||
// NUMBER: 5
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ fun foo() {
|
|||||||
// EXIST: { lookupString: "continue@myDo", itemText: "continue", tailText: "@myDo", attributes: "bold" }
|
// EXIST: { lookupString: "continue@myDo", itemText: "continue", tailText: "@myDo", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "continue@myWhile", itemText: "continue", tailText: "@myWhile", attributes: "bold" }
|
// EXIST: { lookupString: "continue@myWhile", itemText: "continue", tailText: "@myWhile", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "continue@myFor", itemText: "continue", tailText: "@myFor", attributes: "bold" }
|
// EXIST: { lookupString: "continue@myFor", itemText: "continue", tailText: "@myFor", attributes: "bold" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[<caret>]
|
[<caret>]
|
||||||
|
|
||||||
// EXIST: file
|
// EXIST: file
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -37,4 +37,6 @@ var a : Int
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: vararg
|
// EXIST: vararg
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 25
|
// EXIST: companion
|
||||||
|
/*TODO*/
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -20,4 +20,4 @@ fun foo(p: Int) {
|
|||||||
// EXIST: try
|
// EXIST: try
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 15
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ public class Test {
|
|||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 24
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -29,4 +29,5 @@ class TestClass {
|
|||||||
/*why?*/
|
/*why?*/
|
||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
// NUMBER: 24
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ class T<<caret>>
|
|||||||
|
|
||||||
// EXIST: in
|
// EXIST: in
|
||||||
// EXIST: out
|
// EXIST: out
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -21,4 +21,4 @@ fun foo() {
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 19
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ class C(<caret>)
|
|||||||
// EXIST: protected
|
// EXIST: protected
|
||||||
// EXIST: internal
|
// EXIST: internal
|
||||||
// EXIST: override
|
// EXIST: override
|
||||||
// NUMBER: 8
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ fun foo() = <caret>
|
|||||||
// EXIST: try
|
// EXIST: try
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 14
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -5,4 +5,4 @@ fun foo() {
|
|||||||
/*TODO: Is 'package' type qualifier syntax correct?*/
|
/*TODO: Is 'package' type qualifier syntax correct?*/
|
||||||
// EXIST: package
|
// EXIST: package
|
||||||
// EXIST: dynamic
|
// EXIST: dynamic
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -15,4 +15,4 @@ val prop: Int
|
|||||||
// EXIST: try
|
// EXIST: try
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 14
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ class TestSample() {
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: in
|
// EXIST: in
|
||||||
// EXIST: out
|
// EXIST: out
|
||||||
// NUMBER: 4
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ open class Foo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: private, public, protected
|
// EXIST: private, public, protected
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ fun testing() {}
|
|||||||
|
|
||||||
// EXIST: in
|
// EXIST: in
|
||||||
// EXIST: out
|
// EXIST: out
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -15,4 +15,4 @@ fun foo(p: Int = <caret>)
|
|||||||
// EXIST: try
|
// EXIST: try
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 15
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ var a : Int = <caret>
|
|||||||
// EXIST: try
|
// EXIST: try
|
||||||
// EXIST: when
|
// EXIST: when
|
||||||
// EXIST: while
|
// EXIST: while
|
||||||
// NUMBER: 14
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun test(<caret>) {
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: in
|
// EXIST: in
|
||||||
// EXIST: out
|
// EXIST: out
|
||||||
// NUMBER: 4
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -28,4 +28,6 @@ package Test
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: vararg
|
// EXIST: vararg
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 23
|
// EXIST: companion
|
||||||
|
/*TODO*/
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ p<caret>
|
|||||||
// EXIST: private
|
// EXIST: private
|
||||||
// EXIST: protected
|
// EXIST: protected
|
||||||
// EXIST: public
|
// EXIST: public
|
||||||
// NUMBER: 4
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -33,4 +33,5 @@ class Some {
|
|||||||
/*why?*/
|
/*why?*/
|
||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
// NUMBER: 27
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -33,4 +33,5 @@ class Some {
|
|||||||
/*why?*/
|
/*why?*/
|
||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
// NUMBER: 27
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ class Some {
|
|||||||
/*why?*/
|
/*why?*/
|
||||||
// EXIST: constructor
|
// EXIST: constructor
|
||||||
// EXIST: init
|
// EXIST: init
|
||||||
// NUMBER: 27
|
// EXIST: companion
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ class Outer {
|
|||||||
// EXIST: { lookupString: "this@foo", itemText: "this", tailText: "@foo", typeText: "String", attributes: "bold" }
|
// EXIST: { lookupString: "this@foo", itemText: "this", tailText: "@foo", typeText: "String", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Inner", attributes: "bold" }
|
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Inner", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "this@Outer", itemText: "this", tailText: "@Outer", typeText: "Outer", attributes: "bold" }
|
// EXIST: { lookupString: "this@Outer", itemText: "this", tailText: "@Outer", typeText: "Outer", attributes: "bold" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ val String.foo: Int
|
|||||||
get() = this@<caret>.length()
|
get() = this@<caret>.length()
|
||||||
|
|
||||||
// EXIST: "this@foo"
|
// EXIST: "this@foo"
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -11,4 +11,4 @@ inline fun takeHandler2(handler: () -> Unit){}
|
|||||||
// EXIST: { lookupString: "return", itemText: "return", tailText: null, attributes: "bold" }
|
// EXIST: { lookupString: "return", itemText: "return", tailText: null, attributes: "bold" }
|
||||||
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
|
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
|
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ inline fun takeHandler2(handler: () -> Unit){}
|
|||||||
// INVOCATION_COUNT: 1
|
// INVOCATION_COUNT: 1
|
||||||
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
|
// EXIST: { lookupString: "return@takeHandler1", itemText: "return", tailText: "@takeHandler1", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
|
// EXIST: { lookupString: "return@takeHandler2", itemText: "return", tailText: "@takeHandler2", attributes: "bold" }
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ fun takeHandler3(handler: Char.() -> Unit){}
|
|||||||
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Nested.Inner", attributes: "bold" }
|
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Nested.Inner", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "this@Nested", itemText: "this", tailText: "@Nested", typeText: "Outer.Nested", attributes: "bold" }
|
// EXIST: { lookupString: "this@Nested", itemText: "this", tailText: "@Nested", typeText: "Outer.Nested", attributes: "bold" }
|
||||||
// ABSENT: "this@Outer"
|
// ABSENT: "this@Outer"
|
||||||
// NUMBER: 6
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -27,4 +27,6 @@
|
|||||||
// EXIST: var
|
// EXIST: var
|
||||||
// EXIST: vararg
|
// EXIST: vararg
|
||||||
/*why?*/
|
/*why?*/
|
||||||
// NUMBER: 24
|
// EXIST: companion
|
||||||
|
/*TODO*/
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun bar(pInt: Int, pString: String) {
|
|||||||
// EXIST: { lookupString: "param1", itemText: "param1 =" }
|
// EXIST: { lookupString: "param1", itemText: "param1 =" }
|
||||||
// EXIST: { lookupString: "param3", itemText: "param3 =" }
|
// EXIST: { lookupString: "param3", itemText: "param3 =" }
|
||||||
// ABSENT: param2
|
// ABSENT: param2
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun bar(pInt: Int, pString: String) {
|
|||||||
// EXIST: { lookupString: "param1", itemText: "param1 =" }
|
// EXIST: { lookupString: "param1", itemText: "param1 =" }
|
||||||
// EXIST: { lookupString: "param3", itemText: "param3 =" }
|
// EXIST: { lookupString: "param3", itemText: "param3 =" }
|
||||||
// ABSENT: param2
|
// ABSENT: param2
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun f(){
|
|||||||
|
|
||||||
// EXIST: { lookupString: "emptyList", typeText: "List<String>" }
|
// EXIST: { lookupString: "emptyList", typeText: "List<String>" }
|
||||||
// EXIST: { lookupString: "emptyList", typeText: "List<Int>" }
|
// EXIST: { lookupString: "emptyList", typeText: "List<Int>" }
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun foo(): I = <caret>
|
|||||||
// EXIST: { lookupString: "O", itemText: "O", tailText: " (<root>)" }
|
// EXIST: { lookupString: "O", itemText: "O", tailText: " (<root>)" }
|
||||||
// EXIST: foo
|
// EXIST: foo
|
||||||
// EXIST: object
|
// EXIST: object
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ fun foo(): T {
|
|||||||
// EXIST: foo
|
// EXIST: foo
|
||||||
// EXIST: object
|
// EXIST: object
|
||||||
// ABSENT: Other
|
// ABSENT: Other
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ fun bar(o: Any) {
|
|||||||
foo(o as <caret>)
|
foo(o as <caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NUMBER: 2
|
|
||||||
// EXIST: String
|
// EXIST: String
|
||||||
// EXIST: Int
|
// EXIST: Int
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ fun bar(o: Any) {
|
|||||||
foo(o as <caret>)
|
foo(o as <caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NUMBER: 2
|
|
||||||
// EXIST: { lookupString:"List", itemText:"List<String>" }
|
// EXIST: { lookupString:"List", itemText:"List<String>" }
|
||||||
// EXIST: { lookupString:"Map", itemText:"Map<String, Int>" }
|
// EXIST: { lookupString:"Map", itemText:"Map<String, Int>" }
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ fun bar(o: Any) {
|
|||||||
foo(o as <caret>)
|
foo(o as <caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NUMBER: 2
|
|
||||||
// EXIST: { lookupString:"List", itemText:"List<String>" }
|
// EXIST: { lookupString:"List", itemText:"List<String>" }
|
||||||
// EXIST: { lookupString:"String", itemText:"String" }
|
// EXIST: { lookupString:"String", itemText:"String" }
|
||||||
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -15,4 +15,4 @@ fun foo(c: C): T {
|
|||||||
// EXIST: { lookupString: "Inner2", itemText: "Inner2", tailText: "()", typeText: "C.Inner2" }
|
// EXIST: { lookupString: "Inner2", itemText: "Inner2", tailText: "()", typeText: "C.Inner2" }
|
||||||
// ABSENT: Inner3
|
// ABSENT: Inner3
|
||||||
// ABSENT: Nested
|
// ABSENT: Nested
|
||||||
// NUMBER: 2
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ fun foo() : C.Inner {
|
|||||||
|
|
||||||
// ABSENT: Inner
|
// ABSENT: Inner
|
||||||
// EXIST: foo
|
// EXIST: foo
|
||||||
// NUMBER: 1
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ class Outer {
|
|||||||
// EXIST: { lookupString: "this@foo", itemText: "this", tailText: "@foo", typeText: "String", attributes: "bold" }
|
// EXIST: { lookupString: "this@foo", itemText: "this", tailText: "@foo", typeText: "String", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Inner", attributes: "bold" }
|
// EXIST: { lookupString: "this@Inner", itemText: "this", tailText: "@Inner", typeText: "Outer.Inner", attributes: "bold" }
|
||||||
// EXIST: { lookupString: "this@Outer", itemText: "this", tailText: "@Outer", typeText: "Outer", attributes: "bold" }
|
// EXIST: { lookupString: "this@Outer", itemText: "this", tailText: "@Outer", typeText: "Outer", attributes: "bold" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ fun bar() {
|
|||||||
// EXIST: { lookupString: "C2", itemText: "C2<X>" }
|
// EXIST: { lookupString: "C2", itemText: "C2<X>" }
|
||||||
// EXIST: { lookupString: "C2", itemText: "C2<Y>" }
|
// EXIST: { lookupString: "C2", itemText: "C2<Y>" }
|
||||||
// EXIST: { lookupString: "C3", itemText: "C3" }
|
// EXIST: { lookupString: "C3", itemText: "C3" }
|
||||||
// NUMBER: 7
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@ fun foo(): T = <caret>
|
|||||||
// EXIST: foo
|
// EXIST: foo
|
||||||
// EXIST: { lookupString: "object", itemText: "object: T{...}" }
|
// EXIST: { lookupString: "object", itemText: "object: T{...}" }
|
||||||
// EXIST: { lookupString: "OO", itemText: "OO", tailText: " (<root>)" }
|
// EXIST: { lookupString: "OO", itemText: "OO", tailText: " (<root>)" }
|
||||||
// NUMBER: 3
|
// NOTHING_ELSE: true
|
||||||
|
|||||||
+2
-3
@@ -26,9 +26,8 @@ public abstract class AbstractKeywordCompletionTest : JetFixtureCompletionBaseTe
|
|||||||
override fun getPlatform() = TargetPlatform.JVM
|
override fun getPlatform() = TargetPlatform.JVM
|
||||||
|
|
||||||
override fun complete(invocationCount: Int): Array<LookupElement>? {
|
override fun complete(invocationCount: Int): Array<LookupElement>? {
|
||||||
val items = myFixture.complete(CompletionType.BASIC)
|
val items = myFixture.complete(CompletionType.BASIC) ?: return null
|
||||||
if (items == null) return null
|
return items.filter { it.getObject() is KeywordLookupObject }.toTypedArray()
|
||||||
return items.filter { it.getObject() is KeywordLookupObject }.copyToArray()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getProjectDescriptor() = JetLightProjectDescriptor.INSTANCE
|
override fun getProjectDescriptor() = JetLightProjectDescriptor.INSTANCE
|
||||||
|
|||||||
+5
-4
@@ -28,21 +28,22 @@ val COMPLETION_TEST_DATA_BASE_PATH: String
|
|||||||
fun testCompletion(fileText: String, platform: TargetPlatform?, complete: (Int) -> Array<LookupElement>?, defaultInvocationCount: Int = 0) {
|
fun testCompletion(fileText: String, platform: TargetPlatform?, complete: (Int) -> Array<LookupElement>?, defaultInvocationCount: Int = 0) {
|
||||||
testWithAutoCompleteSetting(fileText) {
|
testWithAutoCompleteSetting(fileText) {
|
||||||
val invocationCount = ExpectedCompletionUtils.getInvocationCount(fileText) ?: defaultInvocationCount
|
val invocationCount = ExpectedCompletionUtils.getInvocationCount(fileText) ?: defaultInvocationCount
|
||||||
val items = complete(invocationCount) ?: array()
|
val items = complete(invocationCount) ?: emptyArray()
|
||||||
|
|
||||||
ExpectedCompletionUtils.assertDirectivesValid(fileText)
|
ExpectedCompletionUtils.assertDirectivesValid(fileText)
|
||||||
|
|
||||||
val expected = ExpectedCompletionUtils.itemsShouldExist(fileText, platform)
|
val expected = ExpectedCompletionUtils.itemsShouldExist(fileText, platform)
|
||||||
val unexpected = ExpectedCompletionUtils.itemsShouldAbsent(fileText, platform)
|
val unexpected = ExpectedCompletionUtils.itemsShouldAbsent(fileText, platform)
|
||||||
val itemsNumber = ExpectedCompletionUtils.getExpectedNumber(fileText, platform)
|
val itemsNumber = ExpectedCompletionUtils.getExpectedNumber(fileText, platform)
|
||||||
|
val nothingElse = ExpectedCompletionUtils.isNothingElseExpected(fileText)
|
||||||
|
|
||||||
Assert.assertTrue("Should be some assertions about completion", expected.size != 0 || unexpected.size != 0 || itemsNumber != null)
|
Assert.assertTrue("Should be some assertions about completion", expected.size() != 0 || unexpected.size() != 0 || itemsNumber != null || nothingElse)
|
||||||
ExpectedCompletionUtils.assertContainsRenderedItems(expected, items, ExpectedCompletionUtils.isWithOrder(fileText))
|
ExpectedCompletionUtils.assertContainsRenderedItems(expected, items, ExpectedCompletionUtils.isWithOrder(fileText), nothingElse)
|
||||||
ExpectedCompletionUtils.assertNotContainsRenderedItems(unexpected, items)
|
ExpectedCompletionUtils.assertNotContainsRenderedItems(unexpected, items)
|
||||||
|
|
||||||
if (itemsNumber != null) {
|
if (itemsNumber != null) {
|
||||||
val expectedItems = ExpectedCompletionUtils.listToString(ExpectedCompletionUtils.getItemsInformation(items))
|
val expectedItems = ExpectedCompletionUtils.listToString(ExpectedCompletionUtils.getItemsInformation(items))
|
||||||
Assert.assertEquals("Invalid number of completion items: ${expectedItems}", itemsNumber, items.size)
|
Assert.assertEquals("Invalid number of completion items: ${expectedItems}", itemsNumber, items.size())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-1
@@ -123,6 +123,8 @@ public class ExpectedCompletionUtils {
|
|||||||
private static final String NUMBER_JS_LINE_PREFIX = "NUMBER_JS:";
|
private static final String NUMBER_JS_LINE_PREFIX = "NUMBER_JS:";
|
||||||
private static final String NUMBER_JAVA_LINE_PREFIX = "NUMBER_JAVA:";
|
private static final String NUMBER_JAVA_LINE_PREFIX = "NUMBER_JAVA:";
|
||||||
|
|
||||||
|
private static final String NOTHING_ELSE_PREFIX = "NOTHING_ELSE:";
|
||||||
|
|
||||||
private static final String INVOCATION_COUNT_PREFIX = "INVOCATION_COUNT:";
|
private static final String INVOCATION_COUNT_PREFIX = "INVOCATION_COUNT:";
|
||||||
private static final String WITH_ORDER_PREFIX = "WITH_ORDER:";
|
private static final String WITH_ORDER_PREFIX = "WITH_ORDER:";
|
||||||
private static final String AUTOCOMPLETE_SETTING_PREFIX = "AUTOCOMPLETE_SETTING:";
|
private static final String AUTOCOMPLETE_SETTING_PREFIX = "AUTOCOMPLETE_SETTING:";
|
||||||
@@ -142,6 +144,7 @@ public class ExpectedCompletionUtils {
|
|||||||
INVOCATION_COUNT_PREFIX,
|
INVOCATION_COUNT_PREFIX,
|
||||||
WITH_ORDER_PREFIX,
|
WITH_ORDER_PREFIX,
|
||||||
AUTOCOMPLETE_SETTING_PREFIX,
|
AUTOCOMPLETE_SETTING_PREFIX,
|
||||||
|
NOTHING_ELSE_PREFIX,
|
||||||
RUNTIME_TYPE,
|
RUNTIME_TYPE,
|
||||||
AstAccessControl.INSTANCE$.getALLOW_AST_ACCESS_DIRECTIVE());
|
AstAccessControl.INSTANCE$.getALLOW_AST_ACCESS_DIRECTIVE());
|
||||||
|
|
||||||
@@ -214,6 +217,10 @@ public class ExpectedCompletionUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isNothingElseExpected(String fileText) {
|
||||||
|
return Boolean.TRUE.equals(InTextDirectivesUtils.getPrefixedBoolean(fileText, NOTHING_ELSE_PREFIX));
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static Integer getInvocationCount(String fileText) {
|
public static Integer getInvocationCount(String fileText) {
|
||||||
return InTextDirectivesUtils.getPrefixedInt(fileText, INVOCATION_COUNT_PREFIX);
|
return InTextDirectivesUtils.getPrefixedInt(fileText, INVOCATION_COUNT_PREFIX);
|
||||||
@@ -232,10 +239,12 @@ public class ExpectedCompletionUtils {
|
|||||||
InTextDirectivesUtils.assertHasUnknownPrefixes(fileText, KNOWN_PREFIXES);
|
InTextDirectivesUtils.assertHasUnknownPrefixes(fileText, KNOWN_PREFIXES);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void assertContainsRenderedItems(CompletionProposal[] expected, LookupElement[] items, boolean checkOrder) {
|
public static void assertContainsRenderedItems(CompletionProposal[] expected, LookupElement[] items, boolean checkOrder, boolean nothingElse) {
|
||||||
List<CompletionProposal> itemsInformation = getItemsInformation(items);
|
List<CompletionProposal> itemsInformation = getItemsInformation(items);
|
||||||
String allItemsString = listToString(itemsInformation);
|
String allItemsString = listToString(itemsInformation);
|
||||||
|
|
||||||
|
Set<CompletionProposal> leftItems = nothingElse ? new LinkedHashSet<CompletionProposal>(itemsInformation) : null;
|
||||||
|
|
||||||
int indexOfPrevious = Integer.MIN_VALUE;
|
int indexOfPrevious = Integer.MIN_VALUE;
|
||||||
|
|
||||||
for (CompletionProposal expectedProposal : expected) {
|
for (CompletionProposal expectedProposal : expected) {
|
||||||
@@ -251,6 +260,10 @@ public class ExpectedCompletionUtils {
|
|||||||
!checkOrder || index > indexOfPrevious);
|
!checkOrder || index > indexOfPrevious);
|
||||||
indexOfPrevious = index;
|
indexOfPrevious = index;
|
||||||
|
|
||||||
|
if (leftItems != null) {
|
||||||
|
leftItems.remove(proposal);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -264,6 +277,10 @@ public class ExpectedCompletionUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (leftItems != null && !leftItems.isEmpty()) {
|
||||||
|
Assert.fail("No items not mentioned in EXIST directives expected but some found:\n" + listToString(leftItems));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Integer getPlatformExpectedNumber(String fileText, String platformNumberPrefix) {
|
private static Integer getPlatformExpectedNumber(String fileText, String platformNumberPrefix) {
|
||||||
|
|||||||
Reference in New Issue
Block a user