Remove obsolete SCRIPT markers

This commit is contained in:
Alexander Udalov
2015-10-29 22:03:58 +03:00
parent c75d96b82c
commit b5f89100f6
27 changed files with 15 additions and 56 deletions
@@ -2579,7 +2579,6 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
} }
} }
else if (receiverValue instanceof ScriptReceiver) { else if (receiverValue instanceof ScriptReceiver) {
// SCRIPT: generate script
return generateScript((ScriptReceiver) receiverValue); return generateScript((ScriptReceiver) receiverValue);
} }
else if (receiverValue instanceof ExtensionReceiver) { else if (receiverValue instanceof ExtensionReceiver) {
@@ -2598,7 +2597,6 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
return context.generateReceiver(descriptor, state, false); return context.generateReceiver(descriptor, state, false);
} }
// SCRIPT: generate script, move to ScriptingUtil
private StackValue generateScript(@NotNull ScriptReceiver receiver) { private StackValue generateScript(@NotNull ScriptReceiver receiver) {
CodegenContext cur = context; CodegenContext cur = context;
StackValue result = StackValue.LOCAL_0; StackValue result = StackValue.LOCAL_0;
@@ -3393,7 +3391,6 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
Type varType = asmType(variableDescriptor.getType()); Type varType = asmType(variableDescriptor.getType());
StackValue storeTo; StackValue storeTo;
// SCRIPT: Variable at the top of the script is generated as field
if (KtPsiUtil.isScriptDeclaration(variableDeclaration)) { if (KtPsiUtil.isScriptDeclaration(variableDeclaration)) {
KtScript scriptPsi = KtPsiUtil.getScript(variableDeclaration); KtScript scriptPsi = KtPsiUtil.getScript(variableDeclaration);
assert scriptPsi != null; assert scriptPsi != null;
@@ -21,14 +21,16 @@ import com.intellij.util.containers.MultiMap;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.codegen.state.GenerationState; import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo; import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtFile;
import org.jetbrains.kotlin.psi.KtScript; import org.jetbrains.kotlin.psi.KtScript;
import org.jetbrains.kotlin.resolve.ScriptNameUtil; import org.jetbrains.kotlin.resolve.ScriptNameUtil;
import org.jetbrains.org.objectweb.asm.Type; import org.jetbrains.org.objectweb.asm.Type;
import java.util.*; import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import static org.jetbrains.kotlin.codegen.binding.CodegenBinding.registerClassNameForScript; import static org.jetbrains.kotlin.codegen.binding.CodegenBinding.registerClassNameForScript;
@@ -37,7 +39,6 @@ public class KotlinCodegenFacade {
public static void prepareForCompilation(@NotNull GenerationState state) { public static void prepareForCompilation(@NotNull GenerationState state) {
for (KtFile file : state.getFiles()) { for (KtFile file : state.getFiles()) {
if (file.isScript()) { if (file.isScript()) {
// SCRIPT: register class name for scripting from this file, move outside of this function
KtScript script = file.getScript(); KtScript script = file.getScript();
assert script != null; assert script != null;
@@ -162,17 +162,14 @@ public class MultifileClassCodegen(
val partContext = state.rootContext.intoMultifileClassPart(packageFragment, facadeClassType, partType, file) val partContext = state.rootContext.intoMultifileClassPart(packageFragment, facadeClassType, partType, file)
for (declaration in file.declarations) { for (declaration in file.declarations) {
if (declaration is KtProperty || declaration is KtNamedFunction) { when (declaration) {
generatePart = true is KtProperty, is KtNamedFunction -> {
} generatePart = true
else if (declaration is KtClassOrObject) { }
if (state.generateDeclaredClassFilter.shouldGenerateClass(declaration)) { is KtClassOrObject -> if (state.generateDeclaredClassFilter.shouldGenerateClass(declaration)) {
generateClassOrObject(declaration, partContext) generateClassOrObject(declaration, partContext)
} }
} is KtScript -> if (state.generateDeclaredClassFilter.shouldGenerateScript(declaration)) {
else if (declaration is KtScript) {
// SCRIPT: generate script code, should be separate execution branch
if (state.generateDeclaredClassFilter.shouldGenerateScript(declaration)) {
ScriptCodegen.createScriptCodegen(declaration, state, partContext).generate() ScriptCodegen.createScriptCodegen(declaration, state, partContext).generate()
} }
} }
@@ -101,7 +101,6 @@ public class PackageCodegen {
else if (declaration instanceof KtScript) { else if (declaration instanceof KtScript) {
KtScript script = (KtScript) declaration; KtScript script = (KtScript) declaration;
// SCRIPT: generate script code, should be separate execution branch
if (state.getGenerateDeclaredClassFilter().shouldGenerateScript(script)) { if (state.getGenerateDeclaredClassFilter().shouldGenerateScript(script)) {
ScriptCodegen.createScriptCodegen(script, state, packagePartContext).generate(); ScriptCodegen.createScriptCodegen(script, state, packagePartContext).generate();
} }
@@ -44,7 +44,6 @@ import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE;
import static org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; import static org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin.NO_ORIGIN;
import static org.jetbrains.org.objectweb.asm.Opcodes.*; import static org.jetbrains.org.objectweb.asm.Opcodes.*;
// SCRIPT: script code generator
public class ScriptCodegen extends MemberCodegen<KtScript> { public class ScriptCodegen extends MemberCodegen<KtScript> {
public static ScriptCodegen createScriptCodegen( public static ScriptCodegen createScriptCodegen(
@@ -161,7 +161,7 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid {
@Override @Override
public void visitJetFile(@NotNull KtFile file) { public void visitJetFile(@NotNull KtFile file) {
if (file.isScript()) { if (file.isScript()) {
// SCRIPT: should be replaced with VisitScript override // TODO: replace with visitScript override
//noinspection ConstantConditions //noinspection ConstantConditions
ClassDescriptor classDescriptor = bindingContext.get(CLASS_FOR_SCRIPT, bindingContext.get(SCRIPT, file.getScript())); ClassDescriptor classDescriptor = bindingContext.get(CLASS_FOR_SCRIPT, bindingContext.get(SCRIPT, file.getScript()));
classStack.push(classDescriptor); classStack.push(classDescriptor);
@@ -89,7 +89,6 @@ public class CodegenBinding {
return Boolean.TRUE.equals(bindingContext.get(ENUM_ENTRY_CLASS_NEED_SUBCLASS, classDescriptor)); return Boolean.TRUE.equals(bindingContext.get(ENUM_ENTRY_CLASS_NEED_SUBCLASS, classDescriptor));
} }
// SCRIPT: Generate asmType for script, move to ScriptingUtil
@NotNull @NotNull
public static Type asmTypeForScriptDescriptor(BindingContext bindingContext, @NotNull ScriptDescriptor scriptDescriptor) { public static Type asmTypeForScriptDescriptor(BindingContext bindingContext, @NotNull ScriptDescriptor scriptDescriptor) {
ClassDescriptor classDescriptor = bindingContext.get(CLASS_FOR_SCRIPT, scriptDescriptor); ClassDescriptor classDescriptor = bindingContext.get(CLASS_FOR_SCRIPT, scriptDescriptor);
@@ -97,7 +96,6 @@ public class CodegenBinding {
return getAsmType(bindingContext, classDescriptor); return getAsmType(bindingContext, classDescriptor);
} }
// SCRIPT: Generate asmType for script, move to ScriptingUtil
@NotNull @NotNull
public static Type asmTypeForScriptPsi(BindingContext bindingContext, @NotNull KtScript script) { public static Type asmTypeForScriptPsi(BindingContext bindingContext, @NotNull KtScript script) {
ScriptDescriptor scriptDescriptor = bindingContext.get(SCRIPT, script); ScriptDescriptor scriptDescriptor = bindingContext.get(SCRIPT, script);
@@ -198,7 +196,6 @@ public class CodegenBinding {
innerClasses.add(inner); innerClasses.add(inner);
} }
// SCRIPT: register asmType for script, move to ScriptingUtil
public static void registerClassNameForScript( public static void registerClassNameForScript(
@NotNull BindingTrace trace, @NotNull BindingTrace trace,
@NotNull KtScript script, @NotNull KtScript script,
@@ -227,15 +224,14 @@ public class CodegenBinding {
// todo: we use Set and add given files but ignoring other scripts because something non-clear kept in binding // todo: we use Set and add given files but ignoring other scripts because something non-clear kept in binding
// for scripts especially in case of REPL // for scripts especially in case of REPL
// SCRIPT: collect fq names for files that are not scripts Set<FqName> names = new HashSet<FqName>();
HashSet<FqName> names = new HashSet<FqName>();
for (KtFile file : files) { for (KtFile file : files) {
if (!file.isScript()) { if (!file.isScript()) {
names.add(file.getPackageFqName()); names.add(file.getPackageFqName());
} }
} }
HashSet<KtFile> answer = new HashSet<KtFile>(); Set<KtFile> answer = new HashSet<KtFile>();
answer.addAll(files); answer.addAll(files);
for (FqName name : names) { for (FqName name : names) {
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.storage.LockBasedStorageManager; import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.storage.NullableLazyValue; import org.jetbrains.kotlin.storage.NullableLazyValue;
import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeUtils;
import org.jetbrains.org.objectweb.asm.Type; import org.jetbrains.org.objectweb.asm.Type;
import java.util.*; import java.util.*;
@@ -312,7 +311,6 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
return new ConstructorContext(descriptor, getContextKind(), this, closure); return new ConstructorContext(descriptor, getContextKind(), this, closure);
} }
// SCRIPT: generate into script, move to ScriptingUtil
@NotNull @NotNull
public ScriptContext intoScript( public ScriptContext intoScript(
@NotNull ScriptDescriptor script, @NotNull ScriptDescriptor script,
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.descriptors.ScriptDescriptor;
import java.util.List; import java.util.List;
// SCRIPT: script as field owner context
public class ScriptContext extends FieldOwnerContext<ClassDescriptor> { public class ScriptContext extends FieldOwnerContext<ClassDescriptor> {
private final ScriptDescriptor scriptDescriptor; private final ScriptDescriptor scriptDescriptor;
private final List<ScriptDescriptor> earlierScripts; private final List<ScriptDescriptor> earlierScripts;
@@ -155,7 +155,6 @@ public interface KtNodeTypes {
IElementType PACKAGE_DIRECTIVE = KtStubElementTypes.PACKAGE_DIRECTIVE; IElementType PACKAGE_DIRECTIVE = KtStubElementTypes.PACKAGE_DIRECTIVE;
// SCRIPT: script node type
KtNodeType SCRIPT = new KtNodeType("SCRIPT", KtScript.class); KtNodeType SCRIPT = new KtNodeType("SCRIPT", KtScript.class);
IFileElementType TYPE_CODE_FRAGMENT = new KtTypeCodeFragmentType(); IFileElementType TYPE_CODE_FRAGMENT = new KtTypeCodeFragmentType();
@@ -172,7 +172,6 @@ public class KtFile extends PsiFileBase implements KtDeclarationContainer, KtAnn
@Override @Override
public void setPackageName(String packageName) { } public void setPackageName(String packageName) { }
// SCRIPT: find script in file
@Nullable @Nullable
public KtScript getScript() { public KtScript getScript() {
return PsiTreeUtil.getChildOfType(this, KtScript.class); return PsiTreeUtil.getChildOfType(this, KtScript.class);
@@ -280,12 +280,10 @@ public class KtPsiUtil {
return qualifiedParent.getReceiverExpression() == expression || isLHSOfDot(qualifiedParent); return qualifiedParent.getReceiverExpression() == expression || isLHSOfDot(qualifiedParent);
} }
// SCRIPT: is declaration in script?
public static boolean isScriptDeclaration(@NotNull KtDeclaration namedDeclaration) { public static boolean isScriptDeclaration(@NotNull KtDeclaration namedDeclaration) {
return getScript(namedDeclaration) != null; return getScript(namedDeclaration) != null;
} }
// SCRIPT: get script from top-level declaration
@Nullable @Nullable
public static KtScript getScript(@NotNull KtDeclaration namedDeclaration) { public static KtScript getScript(@NotNull KtDeclaration namedDeclaration) {
PsiElement parent = namedDeclaration.getParent(); PsiElement parent = namedDeclaration.getParent();
@@ -22,7 +22,6 @@ import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
// SCRIPT: Script declaration
public class KtScript extends KtDeclarationImpl implements KtDeclarationContainer { public class KtScript extends KtDeclarationImpl implements KtDeclarationContainer {
public KtScript(@NotNull ASTNode node) { public KtScript(@NotNull ASTNode node) {
@@ -23,13 +23,11 @@ import com.intellij.psi.stubs.PsiFileStubImpl
import com.intellij.psi.tree.IStubFileElementType import com.intellij.psi.tree.IStubFileElementType
import com.intellij.util.io.StringRef import com.intellij.util.io.StringRef
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.stubs.KotlinFileStub import org.jetbrains.kotlin.psi.stubs.KotlinFileStub
import org.jetbrains.kotlin.psi.stubs.KotlinImportDirectiveStub import org.jetbrains.kotlin.psi.stubs.KotlinImportDirectiveStub
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
// SCRIPT: PsiJetFileStubImpl knows about scripting
public open class KotlinFileStubImpl( public open class KotlinFileStubImpl(
jetFile: KtFile?, jetFile: KtFile?,
private val packageName: StringRef, private val packageName: StringRef,
@@ -112,7 +112,6 @@ public class BodyResolver {
resolveFunctionBodies(c); resolveFunctionBodies(c);
// SCRIPT: resolve script bodies
scriptBodyResolverResolver.resolveScriptBodies(c); scriptBodyResolverResolver.resolveScriptBodies(c);
if (!c.getTopDownAnalysisMode().isLocalDeclarations()) { if (!c.getTopDownAnalysisMode().isLocalDeclarations()) {
@@ -649,7 +649,6 @@ public class DescriptorResolver {
DeclarationDescriptor containingDeclaration = scope.getOwnerDescriptor(); DeclarationDescriptor containingDeclaration = scope.getOwnerDescriptor();
VariableDescriptor result; VariableDescriptor result;
KotlinType type; KotlinType type;
// SCRIPT: Create property descriptors
if (KtPsiUtil.isScriptDeclaration(variable)) { if (KtPsiUtil.isScriptDeclaration(variable)) {
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create( PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(
containingDeclaration, containingDeclaration,
@@ -33,10 +33,8 @@ import java.util.Map;
import static org.jetbrains.kotlin.types.TypeUtils.NO_EXPECTED_TYPE; import static org.jetbrains.kotlin.types.TypeUtils.NO_EXPECTED_TYPE;
// SCRIPT: resolve symbols in scripts
public class ScriptBodyResolver { public class ScriptBodyResolver {
private final ExpressionTypingServices expressionTypingServices;
@NotNull private final ExpressionTypingServices expressionTypingServices;
public ScriptBodyResolver( public ScriptBodyResolver(
@NotNull ExpressionTypingServices expressionTypingServices @NotNull ExpressionTypingServices expressionTypingServices
@@ -20,7 +20,6 @@ import com.intellij.openapi.util.Key;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.psi.KtScript; import org.jetbrains.kotlin.psi.KtScript;
// SCRIPT: Resolve declarations in scripts
public class ScriptPriorities { public class ScriptPriorities {
public static final Key<Integer> PRIORITY_KEY = Key.create(KtScript.class.getName() + ".priority"); public static final Key<Integer> PRIORITY_KEY = Key.create(KtScript.class.getName() + ".priority");
@@ -158,7 +158,6 @@ public class TopDownAnalysisContext implements BodiesResolveContext {
@NotNull @NotNull
public Collection<ClassDescriptorWithResolutionScopes> getAllClasses() { public Collection<ClassDescriptorWithResolutionScopes> getAllClasses() {
// SCRIPT: all classes are declared classes + script classes
Collection<ClassDescriptorWithResolutionScopes> scriptClasses = CollectionsKt.map( Collection<ClassDescriptorWithResolutionScopes> scriptClasses = CollectionsKt.map(
getScripts().values(), getScripts().values(),
new Function1<ScriptDescriptor, ClassDescriptorWithResolutionScopes>() { new Function1<ScriptDescriptor, ClassDescriptorWithResolutionScopes>() {
@@ -33,8 +33,8 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt; import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt;
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext; import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext;
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue.Kind; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue.Kind;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.resolve.scopes.receivers.*; import org.jetbrains.kotlin.resolve.scopes.receivers.*;
import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeUtils; import org.jetbrains.kotlin.types.TypeUtils;
@@ -125,7 +125,6 @@ public class DataFlowValueFactory {
@NotNull DeclarationDescriptor containingDeclarationOrModule @NotNull DeclarationDescriptor containingDeclarationOrModule
) { ) {
if (receiverValue instanceof TransientReceiver || receiverValue instanceof ScriptReceiver) { if (receiverValue instanceof TransientReceiver || receiverValue instanceof ScriptReceiver) {
// SCRIPT: smartcasts data flow
KotlinType type = receiverValue.getType(); KotlinType type = receiverValue.getType();
return new DataFlowValue(receiverValue, type, STABLE_VALUE, getImmanentNullability(type)); return new DataFlowValue(receiverValue, type, STABLE_VALUE, getImmanentNullability(type));
} }
@@ -55,7 +55,6 @@ protected constructor(
private fun resolveClassDescriptor(name: Name): List<ClassDescriptor> { private fun resolveClassDescriptor(name: Name): List<ClassDescriptor> {
return declarationProvider.getClassOrObjectDeclarations(name).map { return declarationProvider.getClassOrObjectDeclarations(name).map {
// SCRIPT: Creating a script class
if (it is JetScriptInfo) if (it is JetScriptInfo)
LazyScriptClassDescriptor(c as ResolveSession, thisDescriptor, name, it) LazyScriptClassDescriptor(c as ResolveSession, thisDescriptor, name, it)
else else
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProv
import org.jetbrains.kotlin.storage.NotNullLazyValue import org.jetbrains.kotlin.storage.NotNullLazyValue
import org.jetbrains.kotlin.utils.toReadOnlyList import org.jetbrains.kotlin.utils.toReadOnlyList
// SCRIPT: Members of a script class
public class LazyScriptClassMemberScope protected constructor( public class LazyScriptClassMemberScope protected constructor(
private val resolveSession: ResolveSession, private val resolveSession: ResolveSession,
declarationProvider: ClassMemberDeclarationProvider, declarationProvider: ClassMemberDeclarationProvider,
@@ -21,17 +21,13 @@ import org.jetbrains.kotlin.descriptors.ScriptDescriptor;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.KotlinType;
// SCRIPT: script receiver
public class ScriptReceiver implements ThisReceiver { public class ScriptReceiver implements ThisReceiver {
@NotNull
private final ScriptDescriptor scriptDescriptor; private final ScriptDescriptor scriptDescriptor;
public ScriptReceiver(@NotNull ScriptDescriptor scriptDescriptor) { public ScriptReceiver(@NotNull ScriptDescriptor scriptDescriptor) {
this.scriptDescriptor = scriptDescriptor; this.scriptDescriptor = scriptDescriptor;
} }
@NotNull @NotNull
@Override @Override
public ScriptDescriptor getDeclarationDescriptor() { public ScriptDescriptor getDeclarationDescriptor() {
@@ -159,7 +159,6 @@ public class ExpressionTypingServices {
) { ) {
List<KtExpression> block = StatementFilterKt.filterStatements(statementFilter, expression); List<KtExpression> block = StatementFilterKt.filterStatements(statementFilter, expression);
// SCRIPT: get code descriptor for script declaration
DeclarationDescriptor containingDescriptor = context.scope.getOwnerDescriptor(); DeclarationDescriptor containingDescriptor = context.scope.getOwnerDescriptor();
if (containingDescriptor instanceof ScriptDescriptor) { if (containingDescriptor instanceof ScriptDescriptor) {
if (!(expression.getParent() instanceof KtScript)) { if (!(expression.getParent() instanceof KtScript)) {
@@ -120,7 +120,6 @@ public class CodegenTestFiles {
List<AnalyzerScriptParameter> scriptParameterTypes = Lists.newArrayList(); List<AnalyzerScriptParameter> scriptParameterTypes = Lists.newArrayList();
List<Object> scriptParameterValues = Lists.newArrayList(); List<Object> scriptParameterValues = Lists.newArrayList();
// SCRIPT: extract script params, move to ScriptingUtil
if (file.isScript()) { if (file.isScript()) {
Pattern scriptParametersPattern = Pattern.compile("param: (\\S+): (\\S+): (\\S.*)"); Pattern scriptParametersPattern = Pattern.compile("param: (\\S+): (\\S+): (\\S.*)");
Matcher scriptParametersMatcher = scriptParametersPattern.matcher(file.getText()); Matcher scriptParametersMatcher = scriptParametersPattern.matcher(file.getText());
@@ -37,8 +37,6 @@ import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope.kotlinSourceAndClassFiles import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope.kotlinSourceAndClassFiles
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
@@ -205,10 +203,8 @@ public class IDELightClassGenerationSupport(private val project: Project) : Ligh
} }
} }
private fun forceResolvePackageDeclarations(files: Collection<KtFile>, session: ResolveSession) { private fun forceResolvePackageDeclarations(files: Collection<KtFile>, session: ResolveSession) {
for (file in files) { for (file in files) {
// SCRIPT: not supported
if (file.isScript) continue if (file.isScript) continue
val packageFqName = file.packageFqName val packageFqName = file.packageFqName
@@ -436,7 +436,6 @@ public class JetBlock extends AbstractBlock {
ASTNode childParent = child.getTreeParent(); ASTNode childParent = child.getTreeParent();
IElementType childType = child.getElementType(); IElementType childType = child.getElementType();
// SCRIPT: Avoid indenting script top BLOCK contents
if (childParent != null && childParent.getTreeParent() != null) { if (childParent != null && childParent.getTreeParent() != null) {
if (childParent.getElementType() == BLOCK && childParent.getTreeParent().getElementType() == SCRIPT) { if (childParent.getElementType() == BLOCK && childParent.getTreeParent().getElementType() == SCRIPT) {
return Indent.getNoneIndent(); return Indent.getNoneIndent();