diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/drop.out b/idea/testData/debugger/sequence/exec/sequence/outs/drop.out new file mode 100644 index 00000000000..d4275bb56de --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/drop.out @@ -0,0 +1,28 @@ +LineBreakpoint created at Drop.kt:5 +Run Java +Connected to the target VM +Drop.kt:5 +listOf(1, 2, 3).asSequence() +.drop(2) +.count() +drop + before: 1,2,3 + after: 4 +count + before: 4 + after: nothing +mappings for drop + direct: + 1 -> nothing + 2 -> nothing + 3 -> 4 + reverse: + 3 <- 4 +mappings for count + direct: + 4 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/dropWhile.out b/idea/testData/debugger/sequence/exec/sequence/outs/dropWhile.out new file mode 100644 index 00000000000..f5a90656b37 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/dropWhile.out @@ -0,0 +1,30 @@ +LineBreakpoint created at DropWhile.kt:5 +Run Java +Connected to the target VM +DropWhile.kt:5 +listOf("abs", "bcs", "abt").asSequence() +.dropWhile({ it.startsWith('a') }) +.forEach({}) +dropWhile + before: 1,2,4 + after: 3,5 +forEach + before: 3,5 + after: nothing +mappings for dropWhile + direct: + 1 -> nothing + 2 -> 3 + 4 -> 5 + reverse: + 2 <- 3 + 4 <- 5 +mappings for forEach + direct: + 3 -> nothing + 5 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/filter.out b/idea/testData/debugger/sequence/exec/sequence/outs/filter.out new file mode 100644 index 00000000000..e7d2d3e5624 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/filter.out @@ -0,0 +1,28 @@ +LineBreakpoint created at Filter.kt:5 +Run Java +Connected to the target VM +Filter.kt:5 +listOf(1,2,3).asSequence() +.filter({ it == 2 }) +.count() +filter + before: 1,2,4 + after: 3 +count + before: 3 + after: nothing +mappings for filter + direct: + 1 -> nothing + 2 -> 3 + 4 -> nothing + reverse: + 2 <- 3 +mappings for count + direct: + 3 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/filterIndexed.out b/idea/testData/debugger/sequence/exec/sequence/outs/filterIndexed.out new file mode 100644 index 00000000000..8c44ca03922 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/filterIndexed.out @@ -0,0 +1,30 @@ +LineBreakpoint created at FilterIndexed.kt:5 +Run Java +Connected to the target VM +FilterIndexed.kt:5 +intArrayOf(1, 2, 3).asSequence() +.filterIndexed({ index, _ -> index % 2 == 0 }) +.count() +filterIndexed + before: 1,3,4 + after: 2,5 +count + before: 2,5 + after: nothing +mappings for filterIndexed + direct: + 1 -> 2 + 3 -> nothing + 4 -> 5 + reverse: + 1 <- 2 + 4 <- 5 +mappings for count + direct: + 2 -> nothing + 5 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/filterIsInstance.out b/idea/testData/debugger/sequence/exec/sequence/outs/filterIsInstance.out new file mode 100644 index 00000000000..dc7c72835ae --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/filterIsInstance.out @@ -0,0 +1,14 @@ +LineBreakpoint created at FilterIsInstance.kt:6 +Run Java +Connected to the target VM +FilterIsInstance.kt:6 +Exception caught: junit.framework.AssertionFailedError: Type inference failed: Not enough information to infer parameter R in inline fun Sequence<*>.filterIsInstance(): Sequence +Please specify it explicitly. +, Type inference failed: Not enough information to infer parameter R in inline fun Sequence<*>.filterIsInstance(): Sequence +Please specify it explicitly. + +WRONG! Should be fixed in the platform + +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/filterNot.out b/idea/testData/debugger/sequence/exec/sequence/outs/filterNot.out new file mode 100644 index 00000000000..0ad17865610 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/filterNot.out @@ -0,0 +1,30 @@ +LineBreakpoint created at FilterNot.kt:6 +Run Java +Connected to the target VM +FilterNot.kt:6 +booleanArrayOf(true, false, false).asSequence() +.filterNot({ it }) +.lastIndexOf(true) +filterNot + before: 1,2,4 + after: 3,5 +lastIndexOf + before: 3,5 + after: nothing +mappings for filterNot + direct: + 1 -> nothing + 2 -> 3 + 4 -> 5 + reverse: + 2 <- 3 + 4 <- 5 +mappings for lastIndexOf + direct: + 3 -> nothing + 5 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/minus.out b/idea/testData/debugger/sequence/exec/sequence/outs/minus.out new file mode 100644 index 00000000000..03bc9b500f5 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/minus.out @@ -0,0 +1,31 @@ +LineBreakpoint created at Minus.kt:6 +Run Java +Connected to the target VM +Minus.kt:6 +byteArrayOf(1, 2, 3, 2).asSequence() +.minus(arrayOf(2.toByte())) +.count() +minus + before: 1,3,4,6 + after: 2,5 +count + before: 2,5 + after: nothing +mappings for minus + direct: + 1 -> 2 + 3 -> nothing + 4 -> 5 + 6 -> nothing + reverse: + 1 <- 2 + 4 <- 5 +mappings for count + direct: + 2 -> nothing + 5 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/minusElement.out b/idea/testData/debugger/sequence/exec/sequence/outs/minusElement.out new file mode 100644 index 00000000000..4bfec087364 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/minusElement.out @@ -0,0 +1,33 @@ +LineBreakpoint created at MinusElement.kt:5 +Run Java +Connected to the target VM +MinusElement.kt:5 +byteArrayOf(1, 2, 3, 2).asSequence() +.minusElement(2.toByte()) +.count() +minusElement + before: 1,3,4,6 + after: 2,5,7 +count + before: 2,5,7 + after: nothing +mappings for minusElement + direct: + 1 -> 2 + 3 -> nothing + 4 -> 5 + 6 -> 7 + reverse: + 1 <- 2 + 4 <- 5 + 6 <- 7 +mappings for count + direct: + 2 -> nothing + 5 -> nothing + 7 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/take.out b/idea/testData/debugger/sequence/exec/sequence/outs/take.out new file mode 100644 index 00000000000..21ec4691c8f --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/take.out @@ -0,0 +1,29 @@ +LineBreakpoint created at Take.kt:5 +Run Java +Connected to the target VM +Take.kt:5 +charArrayOf('a', 'b', 'c').asSequence() +.take(2) +.count() +take + before: 1,3 + after: 2,4 +count + before: 2,4 + after: nothing +mappings for take + direct: + 1 -> 2 + 3 -> 4 + reverse: + 1 <- 2 + 3 <- 4 +mappings for count + direct: + 2 -> nothing + 4 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/outs/takeWhile.out b/idea/testData/debugger/sequence/exec/sequence/outs/takeWhile.out new file mode 100644 index 00000000000..db5c1e711b1 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/outs/takeWhile.out @@ -0,0 +1,27 @@ +LineBreakpoint created at TakeWhile.kt:6 +Run Java +Connected to the target VM +TakeWhile.kt:6 +doubleArrayOf(1.0, 3.0, 5.0).asSequence() +.takeWhile({ it < 2 }) +.forEach({}) +takeWhile + before: 1,3 + after: 2 +forEach + before: 2 + after: nothing +mappings for takeWhile + direct: + 1 -> 2 + 3 -> nothing + reverse: + 1 <- 2 +mappings for forEach + direct: + 2 -> nothing + reverse: + empty +Disconnected from the target VM + +Process finished with exit code 0 diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/Drop.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/Drop.kt new file mode 100644 index 00000000000..39804e7ccb2 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/Drop.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + listOf(1, 2, 3).asSequence().drop(2).count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/DropWhile.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/DropWhile.kt new file mode 100644 index 00000000000..cb844969db0 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/DropWhile.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + listOf("abs", "bcs", "abt").asSequence().dropWhile { it.startsWith('a') }.forEach {} +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/Filter.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/Filter.kt new file mode 100644 index 00000000000..9bb3acb11da --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/Filter.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + listOf(1,2,3).asSequence().filter { it == 2 }.count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIndexed.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIndexed.kt new file mode 100644 index 00000000000..8fb8d791b52 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIndexed.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + intArrayOf(1, 2, 3).asSequence().filterIndexed({ index, _ -> index % 2 == 0 }).count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIsInstance.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIsInstance.kt new file mode 100644 index 00000000000..ec29d52dfa2 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterIsInstance.kt @@ -0,0 +1,7 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package filter + +fun main(args: Array) { + // Breakpoint! + arrayOf(true, "12", false).asSequence().filterIsInstance().forEach {} +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterNot.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterNot.kt new file mode 100644 index 00000000000..dfeac143ccc --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/FilterNot.kt @@ -0,0 +1,7 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package filter + +fun main(args: Array) { + // Breakpoint! + booleanArrayOf(true, false, false).asSequence().filterNot { it }.lastIndexOf(true) +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/Minus.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/Minus.kt new file mode 100644 index 00000000000..270a986f4c8 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/Minus.kt @@ -0,0 +1,7 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package filter + +fun main(args: Array) { + // Breakpoint! + byteArrayOf(1, 2, 3, 2).asSequence().minus(arrayOf(2.toByte())).count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/MinusElement.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/MinusElement.kt new file mode 100644 index 00000000000..6fa2be1598a --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/MinusElement.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + byteArrayOf(1, 2, 3, 2).asSequence().minusElement(2.toByte()).count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/Take.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/Take.kt new file mode 100644 index 00000000000..50039271c05 --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/Take.kt @@ -0,0 +1,6 @@ +package filter + +fun main(args: Array) { + // Breakpoint! + charArrayOf('a', 'b', 'c').asSequence().take(2).count() +} \ No newline at end of file diff --git a/idea/testData/debugger/sequence/exec/sequence/src/filter/TakeWhile.kt b/idea/testData/debugger/sequence/exec/sequence/src/filter/TakeWhile.kt new file mode 100644 index 00000000000..e873a2b96da --- /dev/null +++ b/idea/testData/debugger/sequence/exec/sequence/src/filter/TakeWhile.kt @@ -0,0 +1,7 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package filter + +fun main(args: Array) { + // Breakpoint! + doubleArrayOf(1.0, 3.0, 5.0).asSequence().takeWhile { it < 2 }.forEach {} +} \ No newline at end of file diff --git a/idea/tests/com/intellij/debugger/streams/kotlin/exec/sequence/FilterOperationsTest.kt b/idea/tests/com/intellij/debugger/streams/kotlin/exec/sequence/FilterOperationsTest.kt new file mode 100644 index 00000000000..c75774edd81 --- /dev/null +++ b/idea/tests/com/intellij/debugger/streams/kotlin/exec/sequence/FilterOperationsTest.kt @@ -0,0 +1,18 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.debugger.streams.kotlin.exec.sequence + +class FilterOperationsTest : OperationsTestCase("filter") { + fun testFilter() = doTestWithResult() + fun testFilterNot() = doTestWithResult() + fun testFilterIndexed() = doTestWithResult() + fun testFilterIsInstance() = doTestWithoutResult() + + fun testDrop() = doTestWithResult() + fun testDropWhile() = doTestWithoutResult() + + fun testMinus() = doTestWithResult() + fun testMinusElement() = doTestWithResult() + + fun testTake() = doTestWithResult() + fun testTakeWhile() = doTestWithoutResult() +} \ No newline at end of file