Provide lineSequence() extension method instead of BufferedReader.lines() in order not to conflict with JDK8 instance method with the same name.
This commit is contained in:
@@ -235,7 +235,7 @@ public fun Reader.forEachLine(block: (String) -> Unit): Unit = useLines { it.for
|
||||
* @return the value returned by [block].
|
||||
*/
|
||||
public inline fun <T> Reader.useLines(block: (Sequence<String>) -> T): T =
|
||||
buffered().use { block(it.lines()) }
|
||||
buffered().use { block(it.lineSequence()) }
|
||||
|
||||
/**
|
||||
* Returns a sequence of corresponding file lines.
|
||||
@@ -248,10 +248,13 @@ public inline fun <T> Reader.useLines(block: (Sequence<String>) -> T): T =
|
||||
*
|
||||
* @return a sequence of corresponding file lines. The sequence returned can be iterated only once.
|
||||
*/
|
||||
public fun BufferedReader.lines(): Sequence<String> = LinesSequence(this).constrainOnce()
|
||||
public fun BufferedReader.lineSequence(): Sequence<String> = LinesSequence(this).constrainOnce()
|
||||
|
||||
deprecated("Use lines() function which returns Sequence<String>")
|
||||
public fun BufferedReader.lineIterator(): Iterator<String> = lines().iterator()
|
||||
deprecated("Use lineSequence() instead to avoid conflict with JDK8 lines() method.", ReplaceWith("lineSequence()"))
|
||||
public fun BufferedReader.lines(): Sequence<String> = lineSequence()
|
||||
|
||||
deprecated("Use lineSequence() function which returns Sequence<String>")
|
||||
public fun BufferedReader.lineIterator(): Iterator<String> = lineSequence().iterator()
|
||||
|
||||
private class LinesSequence(private val reader: BufferedReader) : Sequence<String> {
|
||||
override public fun iterator(): Iterator<String> {
|
||||
|
||||
@@ -122,7 +122,7 @@ class ReadWriteTest {
|
||||
test fun manualClose() {
|
||||
val reader = sample().buffered()
|
||||
try {
|
||||
val list = reader.lines().toArrayList()
|
||||
val list = reader.lineSequence().toArrayList()
|
||||
assertEquals(arrayListOf("Hello", "World"), list)
|
||||
} finally {
|
||||
reader.close()
|
||||
@@ -131,19 +131,19 @@ class ReadWriteTest {
|
||||
|
||||
test fun boundaryConditions() {
|
||||
var reader = StringReader("").buffered()
|
||||
assertEquals(ArrayList<String>(), reader.lines().toArrayList())
|
||||
assertEquals(ArrayList<String>(), reader.lineSequence().toArrayList())
|
||||
reader.close()
|
||||
|
||||
reader = StringReader(" ").buffered()
|
||||
assertEquals(arrayListOf(" "), reader.lines().toArrayList())
|
||||
assertEquals(arrayListOf(" "), reader.lineSequence().toArrayList())
|
||||
reader.close()
|
||||
|
||||
reader = StringReader(" \n").buffered()
|
||||
assertEquals(arrayListOf(" "), reader.lines().toArrayList())
|
||||
assertEquals(arrayListOf(" "), reader.lineSequence().toArrayList())
|
||||
reader.close()
|
||||
|
||||
reader = StringReader(" \n ").buffered()
|
||||
assertEquals(arrayListOf(" ", " "), reader.lines().toArrayList())
|
||||
assertEquals(arrayListOf(" ", " "), reader.lineSequence().toArrayList())
|
||||
reader.close()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user