diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java index b52dcc3dd94..9c9592a86cf 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java @@ -30,7 +30,9 @@ import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; -import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.psi.JetDeclaration; +import org.jetbrains.jet.lang.psi.JetScript; +import org.jetbrains.jet.lang.psi.JetTypeParameterListOwner; import org.jetbrains.jet.lang.resolve.BindingContext; import java.util.Collections; @@ -63,13 +65,13 @@ public class ScriptCodegen extends MemberCodegen { } @NotNull - private JetScript scriptDeclaration; + private final JetScript scriptDeclaration; @NotNull private final ScriptContext context; @NotNull - private List earlierScripts; + private final List earlierScripts; private ScriptCodegen( @NotNull JetScript scriptDeclaration, diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java index 82824ac4626..3839ad5a7db 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.resolve; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor; import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; +import org.jetbrains.jet.lang.descriptors.ScriptDescriptorImpl; import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor; import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl; import org.jetbrains.jet.lang.psi.JetDeclaration; @@ -67,7 +68,7 @@ public class ScriptBodyResolver { public void resolveScriptBodies(@NotNull BodiesResolveContext c) { for (Map.Entry e : c.getScripts().entrySet()) { JetScript declaration = e.getKey(); - ScriptDescriptor descriptor = e.getValue(); + ScriptDescriptorImpl descriptor = (ScriptDescriptorImpl) e.getValue(); WritableScope scope = c.getScriptScopes().get(declaration); // TODO: lock in resolveScriptDeclarations diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java index c1623218db1..0f56519e72e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java @@ -19,16 +19,12 @@ package org.jetbrains.jet.lang.resolve; import com.google.common.collect.Lists; import com.intellij.openapi.util.Key; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; -import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; -import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; -import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.Annotations; import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl; import org.jetbrains.jet.lang.parsing.JetScriptDefinition; import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.psi.JetPackageDirective; import org.jetbrains.jet.lang.psi.JetScript; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; @@ -115,7 +111,7 @@ public class ScriptHeaderResolver { FqName nameForScript = ScriptNameUtil.classNameForScript((JetFile) script.getContainingFile()); Name className = nameForScript.shortName(); - ScriptDescriptor scriptDescriptor = new ScriptDescriptor(ns, priority, outerScope, className); + ScriptDescriptor scriptDescriptor = new ScriptDescriptorImpl(ns, priority, outerScope, className); //WriteThroughScope scriptScope = new WriteThroughScope( // outerScope, ns.getMemberScope(), new TraceBasedRedeclarationHandler(trace)); @@ -133,7 +129,7 @@ public class ScriptHeaderResolver { public void resolveScriptDeclarations(@NotNull TopDownAnalysisContext c) { for (Map.Entry e : c.getScripts().entrySet()) { JetScript declaration = e.getKey(); - ScriptDescriptor descriptor = e.getValue(); + ScriptDescriptorImpl descriptor = (ScriptDescriptorImpl) e.getValue(); WritableScope scope = c.getScriptScopes().get(declaration); List valueParameters = Lists.newArrayList(); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ScriptDescriptor.java b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ScriptDescriptor.java index 1c036910e12..46796b152b8 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ScriptDescriptor.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/ScriptDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 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. @@ -17,173 +17,31 @@ package org.jetbrains.jet.lang.descriptors; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.annotations.Annotations; -import org.jetbrains.jet.lang.descriptors.impl.*; -import org.jetbrains.jet.lang.resolve.DescriptorFactory; -import org.jetbrains.jet.lang.resolve.name.Name; -import org.jetbrains.jet.lang.resolve.scopes.JetScope; -import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler; -import org.jetbrains.jet.lang.resolve.scopes.WritableScope; -import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; -import org.jetbrains.jet.lang.resolve.scopes.receivers.ScriptReceiver; +import org.jetbrains.jet.lang.descriptors.annotations.Annotated; +import org.jetbrains.jet.lang.descriptors.impl.ScriptCodeDescriptor; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.TypeSubstitutor; -import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; +import org.jetbrains.jet.lang.resolve.name.Name; -import java.util.Collections; -import java.util.HashSet; import java.util.List; -// SCRIPT: Script declaration descriptor -public class ScriptDescriptor extends DeclarationDescriptorNonRootImpl { - public static final String LAST_EXPRESSION_VALUE_FIELD_NAME = "rv"; - private static final Name NAME = Name.special("