Kapt: Switch to more appropriate way of converting URIs to Files
This commit is contained in:
+11
-4
@@ -11,6 +11,8 @@ import org.jetbrains.kotlin.kapt3.base.util.getPackageNameJava9Aware
|
|||||||
import java.io.ByteArrayInputStream
|
import java.io.ByteArrayInputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.ObjectInputStream
|
import java.io.ObjectInputStream
|
||||||
|
import java.nio.file.FileSystemNotFoundException
|
||||||
|
import java.nio.file.Paths
|
||||||
|
|
||||||
class KaptStubLineInformation {
|
class KaptStubLineInformation {
|
||||||
private val offsets = mutableMapOf<JCTree.JCCompilationUnit, FileInfo>()
|
private val offsets = mutableMapOf<JCTree.JCCompilationUnit, FileInfo>()
|
||||||
@@ -21,11 +23,16 @@ class KaptStubLineInformation {
|
|||||||
const val METADATA_VERSION = 1
|
const val METADATA_VERSION = 1
|
||||||
|
|
||||||
fun parseFileInfo(file: JCTree.JCCompilationUnit): FileInfo {
|
fun parseFileInfo(file: JCTree.JCCompilationUnit): FileInfo {
|
||||||
val sourceUri = file.sourcefile
|
val uri = file.sourcefile?.toUri() ?: return FileInfo.EMPTY
|
||||||
?.toUri()
|
|
||||||
?.takeIf { it.isAbsolute && !it.isOpaque && it.path != null && it.scheme?.toLowerCase() == "file" } ?: return FileInfo.EMPTY
|
val sourceFile = try {
|
||||||
|
Paths.get(uri).toFile()
|
||||||
|
} catch (e: FileSystemNotFoundException) {
|
||||||
|
return FileInfo.EMPTY
|
||||||
|
} catch (e: UnsupportedOperationException) {
|
||||||
|
return FileInfo.EMPTY
|
||||||
|
}
|
||||||
|
|
||||||
val sourceFile = File(sourceUri).takeIf { it.exists() } ?: return FileInfo.EMPTY
|
|
||||||
val kaptMetadataFile = File(sourceFile.parentFile, sourceFile.nameWithoutExtension + KAPT_METADATA_EXTENSION)
|
val kaptMetadataFile = File(sourceFile.parentFile, sourceFile.nameWithoutExtension + KAPT_METADATA_EXTENSION)
|
||||||
|
|
||||||
if (!kaptMetadataFile.isFile) {
|
if (!kaptMetadataFile.isFile) {
|
||||||
|
|||||||
Reference in New Issue
Block a user