Remove redundant direct usages of the ScriptDefinition in compiler

plus some refactoring around definition extraction
This commit is contained in:
Ilya Chernikov
2019-02-13 17:57:28 +01:00
parent 5bc262fcb4
commit d1a1594f26
7 changed files with 48 additions and 47 deletions
@@ -33,9 +33,7 @@ import org.jetbrains.kotlin.resolve.scopes.LexicalScope
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeKind
import org.jetbrains.kotlin.resolve.source.toSourceElement
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import org.jetbrains.kotlin.script.ScriptPriorities
import org.jetbrains.kotlin.script.*
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.types.typeUtil.isNothing
import org.jetbrains.kotlin.types.typeUtil.isUnit
@@ -44,6 +42,7 @@ import java.io.File
import kotlin.reflect.KClass
import kotlin.reflect.KType
class LazyScriptDescriptor(
val resolveSession: ResolveSession,
containingDeclaration: DeclarationDescriptor,
@@ -103,8 +102,7 @@ class LazyScriptDescriptor(
override fun getPriority() = priority
val scriptDefinition: () -> KotlinScriptDefinition = resolveSession.storageManager.createLazyValue {
val file = scriptInfo.script.containingKtFile
scriptInfo.script.kotlinScriptDefinition ?: throw RuntimeException("file ${file.name} is not a script")
scriptDefinitionByFileName(resolveSession.project, scriptInfo.script.containingKtFile.name)
}
override fun substitute(substitutor: TypeSubstitutor) = this