Make AnalyzerFacade an abstract class instead of interface

Seems to workaround some compiler bug
This commit is contained in:
Pavel V. Talanov
2015-08-06 18:03:14 +03:00
parent 72710c0318
commit 6c48c29bf9
3 changed files with 5 additions and 5 deletions
@@ -41,7 +41,7 @@ public class JvmPlatformParameters(
) : PlatformAnalysisParameters ) : PlatformAnalysisParameters
public object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters> { public object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters>() {
override fun <M : ModuleInfo> createResolverForModule( override fun <M : ModuleInfo> createResolverForModule(
moduleInfo: M, moduleInfo: M,
moduleDescriptor: ModuleDescriptorImpl, moduleDescriptor: ModuleDescriptorImpl,
@@ -121,7 +121,7 @@ public interface ModuleInfo {
} }
} }
public interface AnalyzerFacade<in P : PlatformAnalysisParameters> { public abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
public fun <M : ModuleInfo> setupResolverForProject( public fun <M : ModuleInfo> setupResolverForProject(
projectContext: ProjectContext, projectContext: ProjectContext,
modules: Collection<M>, modules: Collection<M>,
@@ -197,7 +197,7 @@ public interface AnalyzerFacade<in P : PlatformAnalysisParameters> {
return resolverForProject return resolverForProject
} }
protected fun <M : ModuleInfo> createResolverForModule( protected abstract fun <M : ModuleInfo> createResolverForModule(
moduleInfo: M, moduleInfo: M,
moduleDescriptor: ModuleDescriptorImpl, moduleDescriptor: ModuleDescriptorImpl,
moduleContext: ModuleContext, moduleContext: ModuleContext,
@@ -207,7 +207,7 @@ public interface AnalyzerFacade<in P : PlatformAnalysisParameters> {
resolverForProject: ResolverForProject<M> resolverForProject: ResolverForProject<M>
): ResolverForModule ): ResolverForModule
public val moduleParameters: ModuleParameters public abstract val moduleParameters: ModuleParameters
} }
//NOTE: relies on delegate to be lazily computed and cached //NOTE: relies on delegate to be lazily computed and cached
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
public object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters> { public object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
override fun <M : ModuleInfo> createResolverForModule( override fun <M : ModuleInfo> createResolverForModule(
moduleInfo: M, moduleInfo: M,