From 0588d517004ec77c6ed6f4d7e61cf4d37ccd7da2 Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Mon, 6 Aug 2012 18:18:17 +0300 Subject: [PATCH] getting rid of default imports for scripts --- .../jet/lang/parsing/JetScriptDefinition.java | 12 +--------- .../jet/lang/resolve/ImportsResolver.java | 3 +-- .../jet/lang/resolve/lazy/ScopeProvider.java | 24 +------------------ .../jetbrains/jet/codegen/ScriptGenTest.java | 18 -------------- 4 files changed, 3 insertions(+), 54 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinition.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinition.java index cfd97e990af..df784f85136 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinition.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinition.java @@ -28,12 +28,10 @@ import java.util.List; public class JetScriptDefinition { private final String extension; private final List parameters; - private final List imports; - public JetScriptDefinition(String extension, List scriptParameters, @Nullable List imports) { + public JetScriptDefinition(String extension, List scriptParameters) { this.extension = extension; parameters = scriptParameters == null ? Collections.emptyList() : scriptParameters; - this.imports = imports == null || imports.isEmpty() ? Collections.emptyList() : importPaths(imports); } private static List importPaths(List imports) { @@ -44,10 +42,6 @@ public class JetScriptDefinition { return paths; } - public JetScriptDefinition(String extension, List scriptParameters) { - this(extension, scriptParameters, null); - } - public JetScriptDefinition(String extension, AnalyzerScriptParameter... scriptParameters) { this(extension, Arrays.asList(scriptParameters)); } @@ -59,8 +53,4 @@ public class JetScriptDefinition { public String getExtension() { return extension; } - - public List getImports() { - return imports; - } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ImportsResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ImportsResolver.java index 9784d7bf31f..aaa45193dd7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ImportsResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ImportsResolver.java @@ -22,7 +22,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; @@ -80,7 +79,7 @@ public class ImportsResolver { private void processImports(boolean onlyClasses, @NotNull JetScope rootScope) { for (JetFile file : context.getNamespaceDescriptors().keySet()) { WritableScope namespaceScope = context.getNamespaceScopes().get(file); - processImportsInFile(onlyClasses, namespaceScope, ScopeProvider.getFileImports(file), rootScope); + processImportsInFile(onlyClasses, namespaceScope, Lists.newArrayList(file.getImportDirectives()), rootScope); } for (JetScript script : context.getScripts().keySet()) { WritableScope scriptScope = context.getScriptScopes().get(script); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java index 7968692d61a..85032807bcf 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java @@ -21,11 +21,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; -import org.jetbrains.jet.lang.parsing.JetParserDefinition; -import org.jetbrains.jet.lang.parsing.JetScriptDefinition; -import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.ImportsResolver; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -76,9 +72,7 @@ public class ScopeProvider { writableScope.importScope(rootPackageDescriptor.getMemberScope()); } - List importDirectives = getFileImports(file); - - ImportsResolver.processImportsInFile(true, writableScope, importDirectives, + ImportsResolver.processImportsInFile(true, writableScope, Lists.newArrayList(file.getImportDirectives()), rootPackageDescriptor.getMemberScope(), resolveSession.getModuleConfiguration(), resolveSession.getTrace(), resolveSession.getInjector().getQualifiedExpressionResolver()); @@ -90,22 +84,6 @@ public class ScopeProvider { return writableScope; } - public static List getFileImports(JetFile file) { - List fileImports = file.getImportDirectives(); - List importDirectives = Lists.newArrayList(); - if(file.isScript()) { - JetScriptDefinition definition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file); - List imports = definition.getImports(); - if(!imports.isEmpty()) { - for (ImportPath importPath : imports) { - importDirectives.add(JetPsiFactory.createImportDirective(file.getProject(), importPath)); - } - } - } - importDirectives.addAll(fileImports); - return importDirectives; - } - @NotNull public JetScope getResolutionScopeForDeclaration(@NotNull JetDeclaration jetDeclaration) { PsiElement immediateParent = jetDeclaration.getParent(); diff --git a/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java index 576f9b52932..d1950cf12f7 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java @@ -39,9 +39,6 @@ public class ScriptGenTest extends CodegenTestCase { public static final JetScriptDefinition FIB_SCRIPT_DEFINITION = new JetScriptDefinition(".lang.kt", new AnalyzerScriptParameter("num", "jet.Int")); - public static final JetScriptDefinition DEFIMPORT_SCRIPT_DEFINITION = - new JetScriptDefinition(".def.kt", null, Arrays.asList("java.util.Collections")); - @Override protected void setUp() throws Exception { super.setUp(); @@ -150,21 +147,6 @@ public class ScriptGenTest extends CodegenTestCase { } } - public void testDefImports() { - JetScriptDefinitionProvider.getInstance(myEnvironment.getProject()).addScriptDefinition(DEFIMPORT_SCRIPT_DEFINITION); - loadFile("script/withdefimports.def.kt"); - final Class aClass = loadClass("Withdefimports", generateClassesInFile()); - try { - Constructor constructor = aClass.getConstructor(); - Field rv = aClass.getField("rv"); - Object script = constructor.newInstance(); - assertEquals(Collections.emptyList(),rv.get(script)); - } - catch (Exception e) { - throw new RuntimeException(e); - } - } - public void testScriptWhereMethodHasClosure() { JetScriptDefinitionProvider.getInstance(myEnvironment.getProject()).addScriptDefinition(FIB_SCRIPT_DEFINITION); loadFile("script/methodWithClosure.lang.kt");