diff --git a/examples/example-vfs/src/Main.kt b/examples/example-vfs/src/Main.kt index 71c74c3b81f..374e4986c69 100644 --- a/examples/example-vfs/src/Main.kt +++ b/examples/example-vfs/src/Main.kt @@ -26,7 +26,8 @@ fun main(args : Array) { FileSystem.addVirtualFileListener{ event -> println(event) if (event is VirtualFileChangedEvent) { - println("new file size is ${event.file.size()}") + // FIXME explicit type casting to avoid overload ambiguity (KT-1461) + println("new file size is ${(event as VirtualFileChangedEvent).file.size()}") } } diff --git a/examples/example-vfs/src/RefreshQueue.kt b/examples/example-vfs/src/RefreshQueue.kt index 1ba33a0cad5..a92e60139fe 100644 --- a/examples/example-vfs/src/RefreshQueue.kt +++ b/examples/example-vfs/src/RefreshQueue.kt @@ -50,9 +50,12 @@ internal object RefreshQueue { /* Checks for changes in virtual file recursively, notifying listeners. */ private fun refreshFile(file : VirtualFile) { FileSystem.assertCanWrite() + val fileInfo = FileSystem.fileToInfo[file.path] + assert(fileInfo != null) + if (fileInfo == null) { + return + } if (file.isDirectory()) { - val fileToInfo = FileSystem.fileToInfo - val fileInfo = fileToInfo[file.path] val oldChildren = fileInfo.children val newChildren = file.children() @@ -69,9 +72,6 @@ internal object RefreshQueue { commonChildren.foreach{ refreshFile(it) } } else { - val fileInfo = FileSystem.fileToInfo[file.path] - assert(fileInfo != null) - val newModificationTime = file.modificationTime() if (fileInfo.lastModified != newModificationTime) { fileInfo.lastModified = newModificationTime