aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/replaymod/gradle/remap/version.kt
blob: d85264e7460decc8a88bf2f3d6b6916c017f96f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.replaymod.gradle.remap

import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.psi.KtFile
import java.nio.file.Path

fun analyze(
    environment: KotlinCoreEnvironment,
    ktFiles: List<KtFile>
): AnalysisResult {
    return try {
        analyze1521(environment, ktFiles)
    } catch (e: Throwable) {
        try {
            analyze1620(environment, ktFiles)
        } catch (e: Throwable) {
            analyze200(environment, ktFiles)
        }
    }
}

fun createSourceRoot(
    tempDir: Path,
    isCommon: Boolean
): KotlinSourceRoot {
    return try {
        createSourceRoot1521(tempDir.toAbsolutePath().toString(), isCommon)
    } catch (e: NoSuchMethodError) {
        createSourceRoot190(tempDir.toAbsolutePath().toString(), isCommon)
    }
}