User: llamalad7 Date: 17 Mar 25 19:43 Revision: eedb0c0e036ae4a8bd42641e4a0bdaffe659fffa Summary: Fix: Resolve compile errors from new 2025.1 build. TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9874&personal=false Index: src/main/kotlin/creator/step/FixedAssetsNewProjectWizardStep.kt =================================================================== --- src/main/kotlin/creator/step/FixedAssetsNewProjectWizardStep.kt (revision c6aad566b60e0edc811e5e4eec3b281e67f9bc4d) +++ src/main/kotlin/creator/step/FixedAssetsNewProjectWizardStep.kt (revision eedb0c0e036ae4a8bd42641e4a0bdaffe659fffa) @@ -25,6 +25,7 @@ import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep import com.intellij.ide.starters.local.GeneratorAsset import com.intellij.ide.starters.local.GeneratorEmptyDirectory +import com.intellij.ide.starters.local.GeneratorFile import com.intellij.ide.starters.local.GeneratorResourceFile import com.intellij.ide.starters.local.GeneratorTemplateFile import com.intellij.ide.wizard.AbstractNewProjectWizardStep @@ -50,21 +51,15 @@ */ abstract class FixedAssetsNewProjectWizardStep(parent: NewProjectWizardStep) : AbstractNewProjectWizardStep(parent) { lateinit var outputDirectory: String - private val assets = arrayListOf() + private val assets = arrayListOf() val templateProperties = hashMapOf() private val filesToOpen = hashSetOf() - fun addAssets(vararg assets: Any) = addAssets(assets.toList()) + fun addAssets(vararg assets: GeneratorAsset) = addAssets(assets.toList()) - fun addAssets(assets: Iterable) { - assets.mapTo(this.assets) { asset -> - when (asset) { - is GeneratorAsset -> GeneratorAssetDelegate(asset) - is FixedGeneratorAsset -> asset - else -> throw IllegalArgumentException("$asset is not a valid asset") + fun addAssets(assets: Iterable) { + this.assets += assets - } + } - } - } fun addTemplateProperties(vararg properties: Pair) = addTemplateProperties(properties.toMap()) @@ -107,13 +102,11 @@ } } - private fun generateFile(asset: FixedGeneratorAsset): VirtualFile? { + private fun generateFile(asset: GeneratorAsset): VirtualFile? { return when (asset) { - is GeneratorAssetDelegate -> when (val delegate = asset.delegate) { - is GeneratorTemplateFile -> generateFile(delegate) - is GeneratorResourceFile -> generateFile(delegate) - is GeneratorEmptyDirectory -> generateFile(delegate) - } + is GeneratorTemplateFile -> generateFile(asset) + is GeneratorResourceFile -> generateFile(asset) + is GeneratorEmptyDirectory -> generateFile(asset) is GeneratorFile -> generateFile(asset) } } @@ -152,7 +145,7 @@ } private fun generateFile(asset: GeneratorFile): VirtualFile? { - val pathStr = "$outputDirectory/${asset.targetFileName}" + val pathStr = "$outputDirectory/${asset.relativePath}" val path = Path.of(pathStr) path.parent?.let(NioFiles::createDirectories) Files.write(path, asset.content) @@ -177,18 +170,3 @@ } } -// This can be removed when https://github.com/JetBrains/intellij-community/pull/2304 is merged -sealed class FixedGeneratorAsset { - abstract val targetFileName: String -} - -data class GeneratorAssetDelegate(val delegate: GeneratorAsset) : FixedGeneratorAsset() { - override val targetFileName get() = delegate.relativePath -} - -class GeneratorFile( - override val targetFileName: String, - val content: ByteArray, -) : FixedGeneratorAsset() { - constructor(targetFileName: String, contents: String) : this(targetFileName, contents.encodeToByteArray()) -} Index: src/main/kotlin/platform/mixin/util/AsmUtil.kt =================================================================== --- src/main/kotlin/platform/mixin/util/AsmUtil.kt (revision c6aad566b60e0edc811e5e4eec3b281e67f9bc4d) +++ src/main/kotlin/platform/mixin/util/AsmUtil.kt (revision eedb0c0e036ae4a8bd42641e4a0bdaffe659fffa) @@ -181,7 +181,7 @@ get() = internalNameToShortName(name) private val LOAD_CLASS_FILE_BYTES: Method? = runCatching { - com.intellij.byteCodeViewer.BytecodeViewerManager::class.java + com.intellij.byteCodeViewer.ByteCodeViewerManager::class.java .getDeclaredMethod("loadClassFileBytes", PsiClass::class.java) .let { it.isAccessible = true; it } }.getOrNull()