Pass previous dependencies to the legacy script dependency resolvers

fixes #KT-22753
This commit is contained in:
Ilya Chernikov
2018-02-07 17:38:51 +01:00
parent 3aaad0c21d
commit e38d5395df
@@ -31,6 +31,9 @@ interface LegacyResolverWrapper
internal class LegacyPackageDependencyResolverWrapper(
val legacyResolver: ScriptDependenciesResolver
) : kotlin.script.experimental.dependencies.DependenciesResolver, LegacyResolverWrapper {
private var previousDependencies: org.jetbrains.kotlin.script.KotlinScriptExternalDependencies? = null
override fun resolve(
scriptContents: kotlin.script.dependencies.ScriptContents,
environment: Environment
@@ -45,7 +48,8 @@ internal class LegacyPackageDependencyResolverWrapper(
environment,
{ sev, msg, pos ->
reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition()))
}, null
},
previousDependencies
).get() ?: return DependenciesResolver.ResolveResult.Failure(reports)
val dependencies = ScriptDependencies(
@@ -55,6 +59,7 @@ internal class LegacyPackageDependencyResolverWrapper(
sources = legacyDeps.sources.toList(),
scripts = legacyDeps.scripts.toList()
)
previousDependencies = legacyDeps
return DependenciesResolver.ResolveResult.Success(dependencies, reports)
}
@@ -73,6 +78,9 @@ internal class ApiChangeDependencyResolverWrapper(
) : kotlin.script.experimental.dependencies.DependenciesResolver,
DependencyResolverWrapper<kotlin.script.dependencies.ScriptDependenciesResolver>,
LegacyResolverWrapper {
private var previousDependencies: kotlin.script.dependencies.KotlinScriptExternalDependencies? = null
override fun resolve(
scriptContents: kotlin.script.dependencies.ScriptContents,
environment: Environment
@@ -83,7 +91,8 @@ internal class ApiChangeDependencyResolverWrapper(
environment,
{ sev, msg, pos ->
reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition()))
}, null
},
previousDependencies
).get() ?: return DependenciesResolver.ResolveResult.Failure(reports)
val dependencies = ScriptDependencies(
@@ -93,6 +102,7 @@ internal class ApiChangeDependencyResolverWrapper(
sources = legacyDeps.sources.toList(),
scripts = legacyDeps.scripts.toList()
)
previousDependencies = legacyDeps
return DependenciesResolver.ResolveResult.Success(dependencies, reports)
}