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( internal class LegacyPackageDependencyResolverWrapper(
val legacyResolver: ScriptDependenciesResolver val legacyResolver: ScriptDependenciesResolver
) : kotlin.script.experimental.dependencies.DependenciesResolver, LegacyResolverWrapper { ) : kotlin.script.experimental.dependencies.DependenciesResolver, LegacyResolverWrapper {
private var previousDependencies: org.jetbrains.kotlin.script.KotlinScriptExternalDependencies? = null
override fun resolve( override fun resolve(
scriptContents: kotlin.script.dependencies.ScriptContents, scriptContents: kotlin.script.dependencies.ScriptContents,
environment: Environment environment: Environment
@@ -45,7 +48,8 @@ internal class LegacyPackageDependencyResolverWrapper(
environment, environment,
{ sev, msg, pos -> { sev, msg, pos ->
reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition())) reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition()))
}, null },
previousDependencies
).get() ?: return DependenciesResolver.ResolveResult.Failure(reports) ).get() ?: return DependenciesResolver.ResolveResult.Failure(reports)
val dependencies = ScriptDependencies( val dependencies = ScriptDependencies(
@@ -55,6 +59,7 @@ internal class LegacyPackageDependencyResolverWrapper(
sources = legacyDeps.sources.toList(), sources = legacyDeps.sources.toList(),
scripts = legacyDeps.scripts.toList() scripts = legacyDeps.scripts.toList()
) )
previousDependencies = legacyDeps
return DependenciesResolver.ResolveResult.Success(dependencies, reports) return DependenciesResolver.ResolveResult.Success(dependencies, reports)
} }
@@ -73,6 +78,9 @@ internal class ApiChangeDependencyResolverWrapper(
) : kotlin.script.experimental.dependencies.DependenciesResolver, ) : kotlin.script.experimental.dependencies.DependenciesResolver,
DependencyResolverWrapper<kotlin.script.dependencies.ScriptDependenciesResolver>, DependencyResolverWrapper<kotlin.script.dependencies.ScriptDependenciesResolver>,
LegacyResolverWrapper { LegacyResolverWrapper {
private var previousDependencies: kotlin.script.dependencies.KotlinScriptExternalDependencies? = null
override fun resolve( override fun resolve(
scriptContents: kotlin.script.dependencies.ScriptContents, scriptContents: kotlin.script.dependencies.ScriptContents,
environment: Environment environment: Environment
@@ -83,7 +91,8 @@ internal class ApiChangeDependencyResolverWrapper(
environment, environment,
{ sev, msg, pos -> { sev, msg, pos ->
reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition())) reports.add(ScriptReport(msg, sev.convertSeverity(), pos?.convertPosition()))
}, null },
previousDependencies
).get() ?: return DependenciesResolver.ResolveResult.Failure(reports) ).get() ?: return DependenciesResolver.ResolveResult.Failure(reports)
val dependencies = ScriptDependencies( val dependencies = ScriptDependencies(
@@ -93,6 +102,7 @@ internal class ApiChangeDependencyResolverWrapper(
sources = legacyDeps.sources.toList(), sources = legacyDeps.sources.toList(),
scripts = legacyDeps.scripts.toList() scripts = legacyDeps.scripts.toList()
) )
previousDependencies = legacyDeps
return DependenciesResolver.ResolveResult.Success(dependencies, reports) return DependenciesResolver.ResolveResult.Success(dependencies, reports)
} }