Copy readSeq/writeSeq from IDEA 171
diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt
index 6662cf8..2f254d2 100644
--- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt
@@ -19,14 +19,14 @@
 import com.intellij.openapi.components.service
 import com.intellij.openapi.vfs.VirtualFile
 import com.intellij.openapi.vfs.VirtualFileWithId
-import com.intellij.util.io.DataInputOutputUtil.readSeq
-import com.intellij.util.io.DataInputOutputUtil.writeSeq
+import com.intellij.util.io.DataInputOutputUtil.*
 import com.intellij.util.io.IOUtil.readUTF
 import com.intellij.util.io.IOUtil.writeUTF
 import org.jetbrains.kotlin.idea.caches.FileAttributeService
 import java.io.DataInput
 import java.io.DataOutput
 import java.io.File
+import java.io.IOException
 import kotlin.script.experimental.dependencies.ScriptDependencies
 
 object ScriptDependenciesFileAttribute {
@@ -104,4 +104,22 @@
 private fun <T : Any> DataInput.readNullable(readT: DataInput.() -> T): T? {
     val hasValue = readBoolean()
     return if (hasValue) readT() else null
+}
+
+@Throws(IOException::class)
+private fun <T> readSeq(`in`: DataInput, readElement: () -> T): List<T> {
+    val size = readINT(`in`)
+    val result = ArrayList<T>(size)
+    for (i in 0 until size) {
+        result.add(readElement())
+    }
+    return result
+}
+
+@Throws(IOException::class)
+private fun <T> writeSeq(out: DataOutput, collection: Collection<T>, writeElement: (T) -> Unit) {
+    writeINT(out, collection.size)
+    for (t in collection) {
+        writeElement(t)
+    }
 }
\ No newline at end of file