Skip to content

Commit 5dd47e1

Browse files
committed
Make Path.source/sink regular functions, not expects.
1 parent 73feef4 commit 5dd47e1

File tree

7 files changed

+20
-27
lines changed

7 files changed

+20
-27
lines changed

core/api/kotlinx-io-core.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,5 +246,7 @@ public final class kotlinx/io/files/PathsJvmKt {
246246
public final class kotlinx/io/files/PathsKt {
247247
public static final fun Path (Ljava/lang/String;[Ljava/lang/String;)Lkotlinx/io/files/Path;
248248
public static final fun Path (Lkotlinx/io/files/Path;[Ljava/lang/String;)Lkotlinx/io/files/Path;
249+
public static final fun sinkDeprecated (Lkotlinx/io/files/Path;)Lkotlinx/io/Sink;
250+
public static final fun sourceDeprecated (Lkotlinx/io/files/Path;)Lkotlinx/io/Source;
249251
}
250252

core/apple/test/NSInputStreamSourceTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ package kotlinx.io
77

88
import kotlinx.io.files.FileSystem
99
import kotlinx.io.files.Path
10-
import kotlinx.io.files.sink
1110
import platform.Foundation.NSInputStream
1211
import platform.Foundation.NSURL
1312
import kotlin.test.Test
@@ -29,7 +28,7 @@ class NSInputStreamSourceTest {
2928
fun nsInputStreamSourceFromFile() {
3029
val file = tempFileName()
3130
try {
32-
Path(file).sink().buffered().use {
31+
FileSystem.System.sink(Path(file)).buffered().use {
3332
it.writeString("example")
3433
}
3534

core/common/src/files/Paths.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55

66
package kotlinx.io.files
77

8-
import kotlinx.io.RawSink
9-
import kotlinx.io.RawSource
10-
import kotlinx.io.Sink
11-
import kotlinx.io.Source
8+
import kotlinx.io.*
9+
import kotlin.jvm.JvmName
1210

1311
/**
1412
* A wrapper around a string representing a file path allowing to read from and write to a
@@ -105,7 +103,8 @@ public fun Path(base: Path, vararg parts: String): Path {
105103
),
106104
level = DeprecationLevel.WARNING
107105
)
108-
public expect fun Path.source(): Source
106+
@JvmName("sourceDeprecated")
107+
public fun Path.source(): Source = FileSystem.System.source(this).buffered()
109108

110109
/**
111110
* Returns [RawSink] for the given path, creates file if it doesn't exist, throws if it's a directory,
@@ -119,4 +118,5 @@ public expect fun Path.source(): Source
119118
),
120119
level = DeprecationLevel.WARNING
121120
)
122-
public expect fun Path.sink(): Sink
121+
@JvmName("sinkDeprecated")
122+
public fun Path.sink(): Sink = FileSystem.System.sink(this).buffered()

core/js/src/files/PathsJs.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,6 @@ public actual fun Path(path: String): Path {
9090
return Path(path, null)
9191
}
9292

93-
public actual fun Path.source(): Source = FileSystem.System.source(this).buffered()
94-
95-
public actual fun Path.sink(): Sink = FileSystem.System.sink(this).buffered()
96-
9793
internal class FileSource(private val path: Path) : RawSource {
9894
private var buffer: dynamic = null
9995
private var closed = false

core/jvm/src/files/PathsJvm.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ public actual class Path internal constructor(internal val file: File) {
4242

4343
public actual fun Path(path: String): Path = Path(File(path))
4444

45-
public actual fun Path.source(): Source = FileSystem.System.source(this).buffered()
46-
47-
public actual fun Path.sink(): Sink = FileSystem.System.sink(this).buffered()
45+
// Function only exists to provide binary compatibility with the earlier releases
46+
@JvmName("source")
47+
@PublishedApi
48+
@Suppress("UNUSED")
49+
internal fun Path.sourceHack(): Source = FileSystem.System.source(this).buffered()
50+
51+
// Function only exists to provide binary compatibility with the earlier releases
52+
@JvmName("sink")
53+
@PublishedApi
54+
@Suppress("UNUSED")
55+
internal fun Path.sinkHack(): Sink = FileSystem.System.sink(this).buffered()

core/native/src/files/PathsNative.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,6 @@ internal expect fun isAbsoluteImpl(path: String): Boolean
6565

6666
public actual fun Path(path: String): Path = Path(path, null)
6767

68-
public actual fun Path.source(): Source = FileSystem.System.source(this).buffered()
69-
70-
public actual fun Path.sink(): Sink = FileSystem.System.sink(this).buffered()
71-
7268
internal class FileSource(
7369
private val file: CPointer<FILE>
7470
) : RawSource {

core/wasm/src/files/PathsWasm.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55

66
package kotlinx.io.files
77

8-
import kotlinx.io.Sink
9-
import kotlinx.io.Source
10-
118
public actual class Path private constructor() {
129
actual override fun toString(): String = unsupported()
1310

@@ -28,8 +25,3 @@ public actual class Path private constructor() {
2825
}
2926

3027
public actual fun Path(path: String): Path = unsupported()
31-
32-
33-
public actual fun Path.source(): Source = unsupported()
34-
35-
public actual fun Path.sink(): Sink = unsupported()

0 commit comments

Comments
 (0)