diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ScriptParameterResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ScriptParameterResolver.java deleted file mode 100644 index d8e88ce1105..00000000000 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ScriptParameterResolver.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.resolve; - -import com.google.common.collect.Lists; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.descriptors.ScriptDescriptor; -import org.jetbrains.kotlin.descriptors.SourceElement; -import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor; -import org.jetbrains.kotlin.descriptors.annotations.Annotations; -import org.jetbrains.kotlin.descriptors.impl.ScriptCodeDescriptor; -import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl; -import org.jetbrains.kotlin.parsing.JetScriptDefinition; -import org.jetbrains.kotlin.parsing.JetScriptDefinitionProvider; -import org.jetbrains.kotlin.psi.JetFile; -import org.jetbrains.kotlin.psi.JetScript; - -import java.util.List; - -// SCRIPT: Resolve script parameters -public final class ScriptParameterResolver { - @NotNull - public static List resolveScriptParameters( - @NotNull JetScript declaration, - @NotNull ScriptCodeDescriptor scriptCodeDescriptor - ) { - List valueParameters = Lists.newArrayList(); - - JetFile file = declaration.getContainingJetFile(); - JetScriptDefinition scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file); - - int index = 0; - for (AnalyzerScriptParameter scriptParameter : scriptDefinition.getScriptParameters()) { - ValueParameterDescriptor parameter = new ValueParameterDescriptorImpl( - scriptCodeDescriptor, null, index, Annotations.EMPTY, scriptParameter.getName(), - scriptParameter.getType(), false, null, SourceElement.NO_SOURCE - ); - valueParameters.add(parameter); - ++index; - } - return valueParameters; - } - - private ScriptParameterResolver() { - } -} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt index 9effaedda56..75693de7bc1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt @@ -19,14 +19,16 @@ package org.jetbrains.kotlin.resolve.lazy.descriptors import org.jetbrains.kotlin.descriptors.DeclarationDescriptorVisitor import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.ScriptDescriptor +import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorNonRootImpl import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.ScriptCodeDescriptor +import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl +import org.jetbrains.kotlin.parsing.JetScriptDefinitionProvider import org.jetbrains.kotlin.psi.JetScript import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.ScriptBodyResolver -import org.jetbrains.kotlin.resolve.ScriptParameterResolver import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil import org.jetbrains.kotlin.resolve.lazy.LazyEntity import org.jetbrains.kotlin.resolve.lazy.ResolveSession @@ -67,9 +69,18 @@ public class LazyScriptDescriptor( private val scriptCodeDescriptor = resolveSession.getStorageManager().createLazyValue { val result = ScriptCodeDescriptor(this) + + val file = jetScript.getContainingJetFile() + val scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file) + result.initialize( implicitReceiver, - ScriptParameterResolver.resolveScriptParameters(jetScript, result), + scriptDefinition.getScriptParameters().mapIndexed { index, scriptParameter -> + ValueParameterDescriptorImpl( + result, null, index, Annotations.EMPTY, scriptParameter.getName(), scriptParameter.getType(), + false, null, SourceElement.NO_SOURCE + ) + }, DeferredType.create(resolveSession.getStorageManager(), resolveSession.getTrace()) { scriptBodyResolver.resolveScriptReturnType(jetScript, this, resolveSession.getTrace()) }