[decompiler] add tests for generated psi text by builtin decompiler

This commit is contained in:
Ilya Kirillov
2023-08-25 21:47:13 +02:00
committed by Space Team
parent 5fc458d5a4
commit 714cb67254
7 changed files with 1379 additions and 31 deletions
@@ -1,28 +0,0 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import com.intellij.util.io.URLUtil
import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInsVirtualFileProviderBaseImpl
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
import java.net.URL
internal class BuiltInsVirtualFileProviderImp(
private val jarFileSystem: CoreJarFileSystem,
) : BuiltInsVirtualFileProviderBaseImpl() {
override fun findVirtualFile(url: URL): VirtualFile? {
val split = URLUtil.splitJarUrl(url.path)
?: errorWithAttachment("URL for builtins does not contain jar separator") {
withEntry("url", url) { url.toString() }
}
val jarPath = split.first
val builtInFile = split.second
val pathToQuery = jarPath + URLUtil.JAR_SEPARATOR + builtInFile
return jarFileSystem.findFileByPath(pathToQuery)
}
}
@@ -11,7 +11,6 @@ import com.intellij.core.CoreApplicationEnvironment
import com.intellij.core.CoreJavaFileManager
import com.intellij.core.CorePackageIndex
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable
import com.intellij.openapi.extensions.PluginDescriptor
@@ -34,6 +33,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSource
import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInsVirtualFileProvider
import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInsVirtualFileProviderCliImpl
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
@@ -114,7 +114,7 @@ object StandaloneProjectFactory {
registerService(ClsKotlinBinaryClassCache::class.java)
registerService(
BuiltInsVirtualFileProvider::class.java,
BuiltInsVirtualFileProviderImp(applicationEnvironment.jarFileSystem as CoreJarFileSystem)
BuiltInsVirtualFileProviderCliImpl(applicationEnvironment.jarFileSystem as CoreJarFileSystem)
)
registerService(FileAttributeService::class.java, DummyFileAttributeService::class.java)
}