diff --git a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java index 269ae2b22ce..1ccce3576ac 100644 --- a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java +++ b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java @@ -24,6 +24,7 @@ import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys; import org.jetbrains.jet.cli.jvm.compiler.*; import org.jetbrains.jet.cli.common.messages.MessageCollector; import org.jetbrains.jet.config.CompilerConfiguration; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.utils.PathUtil; @@ -72,7 +73,8 @@ public class BytecodeCompiler { JetCoreEnvironment environment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration, CompilerSpecialMode.REGULAR); K2JVMCompileEnvironmentConfiguration - env = new K2JVMCompileEnvironmentConfiguration(environment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false); + env = new K2JVMCompileEnvironmentConfiguration(environment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false, + BuiltinsScopeExtensionMode.ALL); // lets register any compiler plugins env.getCompilerPlugins().addAll(getCompilerPlugins()); diff --git a/compiler/android-tests/tests/org/jetbrains/jet/compiler/android/CodegenTestsOnAndroidGenerator.java b/compiler/android-tests/tests/org/jetbrains/jet/compiler/android/CodegenTestsOnAndroidGenerator.java index d276a0fd717..37f90bf4af3 100644 --- a/compiler/android-tests/tests/org/jetbrains/jet/compiler/android/CodegenTestsOnAndroidGenerator.java +++ b/compiler/android-tests/tests/org/jetbrains/jet/compiler/android/CodegenTestsOnAndroidGenerator.java @@ -159,7 +159,7 @@ public class CodegenTestsOnAndroidGenerator extends UsefulTestCase { JetFile psiFile = JetPsiFactory.createFile(jetEnvironment.getProject(), text); ClassFileFactory factory; try { - factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, jetEnvironment.getCompilerSpecialMode()); + factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); } catch (Throwable e) { throw new RuntimeException("Cannot compile: " + filePath + "\n" + text, e); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java index d9b943ff565..296df619d46 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java @@ -31,6 +31,7 @@ import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler; import org.jetbrains.jet.cli.jvm.repl.ReplFromTerminal; import org.jetbrains.jet.codegen.CompilationException; import org.jetbrains.jet.config.CompilerConfiguration; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.utils.PathUtil; @@ -69,8 +70,10 @@ public class K2JVMCompiler extends CLICompileremptyList()); - injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module, mode); + injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module, BuiltinsScopeExtensionMode.ALL); List classpath = Lists.newArrayList(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java index 0761203cd7f..98f7a5f77ff 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java @@ -23,12 +23,12 @@ import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorSignatureResolver; import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; @@ -42,14 +42,14 @@ public class InjectorForJavaSemanticServices { private JavaBridgeConfiguration javaBridgeConfiguration; private PsiClassFinderImpl psiClassFinder; private ModuleDescriptor moduleDescriptor; - private final CompilerSpecialMode compilerSpecialMode; + private final BuiltinsScopeExtensionMode builtinsScopeExtensionMode; private final Project project; private JavaTypeTransformer javaTypeTransformer; private JavaDescriptorSignatureResolver javaDescriptorSignatureResolver; private NamespaceFactoryImpl namespaceFactory; public InjectorForJavaSemanticServices( - @NotNull CompilerSpecialMode compilerSpecialMode, + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode, @NotNull Project project ) { this.javaSemanticServices = new JavaSemanticServices(); @@ -58,7 +58,7 @@ public class InjectorForJavaSemanticServices { this.javaBridgeConfiguration = new JavaBridgeConfiguration(); this.psiClassFinder = new PsiClassFinderImpl(); this.moduleDescriptor = new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(org.jetbrains.jet.lang.resolve.name.Name.special("")); - this.compilerSpecialMode = compilerSpecialMode; + this.builtinsScopeExtensionMode = builtinsScopeExtensionMode; this.project = project; this.javaTypeTransformer = new JavaTypeTransformer(); this.javaDescriptorSignatureResolver = new JavaDescriptorSignatureResolver(); @@ -76,8 +76,8 @@ public class InjectorForJavaSemanticServices { this.javaDescriptorResolver.setSemanticServices(javaSemanticServices); this.javaDescriptorResolver.setTrace(bindingTrace); + javaBridgeConfiguration.setBuiltinsScopeExtensionMode(builtinsScopeExtensionMode); javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices); - javaBridgeConfiguration.setMode(compilerSpecialMode); javaBridgeConfiguration.setProject(project); this.psiClassFinder.setProject(project); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index 892e4938483..3de228afbe7 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -27,7 +27,7 @@ import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl; @@ -53,7 +53,7 @@ import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; @@ -70,7 +70,7 @@ public class InjectorForTopDownAnalyzerForJvm { private final TopDownAnalysisParameters topDownAnalysisParameters; private final BindingTrace bindingTrace; private final ModuleDescriptor moduleDescriptor; - private final CompilerSpecialMode compilerSpecialMode; + private final BuiltinsScopeExtensionMode builtinsScopeExtensionMode; private JavaBridgeConfiguration javaBridgeConfiguration; private JavaDescriptorResolver javaDescriptorResolver; private PsiClassFinderImpl psiClassFinder; @@ -98,7 +98,7 @@ public class InjectorForTopDownAnalyzerForJvm { @NotNull TopDownAnalysisParameters topDownAnalysisParameters, @NotNull BindingTrace bindingTrace, @NotNull ModuleDescriptor moduleDescriptor, - @NotNull CompilerSpecialMode compilerSpecialMode + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode ) { this.topDownAnalyzer = new TopDownAnalyzer(); this.topDownAnalysisContext = new TopDownAnalysisContext(); @@ -110,7 +110,7 @@ public class InjectorForTopDownAnalyzerForJvm { this.topDownAnalysisParameters = topDownAnalysisParameters; this.bindingTrace = bindingTrace; this.moduleDescriptor = moduleDescriptor; - this.compilerSpecialMode = compilerSpecialMode; + this.builtinsScopeExtensionMode = builtinsScopeExtensionMode; this.javaBridgeConfiguration = new JavaBridgeConfiguration(); this.javaDescriptorResolver = new JavaDescriptorResolver(); this.psiClassFinder = new PsiClassFinderImpl(); @@ -165,8 +165,8 @@ public class InjectorForTopDownAnalyzerForJvm { this.descriptorResolver.setExpressionTypingServices(expressionTypingServices); this.descriptorResolver.setTypeResolver(typeResolver); + this.javaBridgeConfiguration.setBuiltinsScopeExtensionMode(builtinsScopeExtensionMode); this.javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices); - this.javaBridgeConfiguration.setMode(compilerSpecialMode); this.javaBridgeConfiguration.setProject(project); javaDescriptorResolver.setJavaDescriptorSignatureResolver(javaDescriptorSignatureResolver); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java index 5adb460e7e1..1ed476cbeb2 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacadeForJVM.java @@ -25,6 +25,7 @@ import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.analyzer.AnalyzerFacade; import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.*; @@ -51,7 +52,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { @NotNull List scriptParameters, @NotNull Predicate filesToAnalyzeCompletely) { return analyzeFilesWithJavaIntegration(project, files, scriptParameters, filesToAnalyzeCompletely, - CompilerSpecialMode.REGULAR, true); + BuiltinsScopeExtensionMode.ALL, true); } @NotNull @@ -68,10 +69,10 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { } public static AnalyzeExhaust analyzeOneFileWithJavaIntegrationAndCheckForErrors( - JetFile file, List scriptParameters, @NotNull CompilerSpecialMode compilerSpecialMode) { + JetFile file, List scriptParameters, @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { AnalyzingUtils.checkForSyntacticErrors(file); - AnalyzeExhaust analyzeExhaust = analyzeOneFileWithJavaIntegration(file, scriptParameters, compilerSpecialMode); + AnalyzeExhaust analyzeExhaust = analyzeOneFileWithJavaIntegration(file, scriptParameters, builtinsScopeExtensionMode); AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext()); @@ -79,20 +80,20 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { } public static AnalyzeExhaust analyzeOneFileWithJavaIntegration( - JetFile file, List scriptParameters, @NotNull CompilerSpecialMode compilerSpecialMode) { + JetFile file, List scriptParameters, @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { return analyzeFilesWithJavaIntegration(file.getProject(), Collections.singleton(file), scriptParameters, - Predicates.alwaysTrue(), compilerSpecialMode); + Predicates.alwaysTrue(), builtinsScopeExtensionMode); } public static AnalyzeExhaust analyzeFilesWithJavaIntegrationAndCheckForErrors( Project project, Collection files, List scriptParameters, Predicate filesToAnalyzeCompletely, - @NotNull CompilerSpecialMode compilerSpecialMode) { + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { for (JetFile file : files) { AnalyzingUtils.checkForSyntacticErrors(file); } AnalyzeExhaust analyzeExhaust = analyzeFilesWithJavaIntegration( - project, files, scriptParameters, filesToAnalyzeCompletely, compilerSpecialMode, false); + project, files, scriptParameters, filesToAnalyzeCompletely, builtinsScopeExtensionMode, false); AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext()); @@ -101,14 +102,14 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { public static AnalyzeExhaust analyzeFilesWithJavaIntegration( Project project, Collection files, List scriptParameters, Predicate filesToAnalyzeCompletely, - @NotNull CompilerSpecialMode compilerSpecialMode) { + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { return analyzeFilesWithJavaIntegration( - project, files, scriptParameters, filesToAnalyzeCompletely, compilerSpecialMode, false); + project, files, scriptParameters, filesToAnalyzeCompletely, builtinsScopeExtensionMode, false); } public static AnalyzeExhaust analyzeFilesWithJavaIntegration( Project project, Collection files, List scriptParameters, Predicate filesToAnalyzeCompletely, - @NotNull CompilerSpecialMode compilerSpecialMode, + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode, boolean storeContextForBodiesResolve) { BindingTraceContext bindingTraceContext = new BindingTraceContext(); @@ -119,7 +120,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm( project, topDownAnalysisParameters, - new ObservableBindingTrace(bindingTraceContext), owner, compilerSpecialMode); + new ObservableBindingTrace(bindingTraceContext), owner, builtinsScopeExtensionMode); try { injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters); BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ? @@ -132,13 +133,13 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade { } public static AnalyzeExhaust shallowAnalyzeFiles(Collection files, - @NotNull CompilerSpecialMode compilerSpecialMode) { + @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { assert files.size() > 0; Project project = files.iterator().next().getProject(); return analyzeFilesWithJavaIntegration(project, files, Collections.emptyList(), Predicates.alwaysFalse(), - compilerSpecialMode); + builtinsScopeExtensionMode); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaBridgeConfiguration.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaBridgeConfiguration.java index 10ab96ad70d..551c9e04720 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaBridgeConfiguration.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaBridgeConfiguration.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.resolve.java; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.DefaultModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; @@ -48,7 +49,7 @@ public class JavaBridgeConfiguration implements ModuleConfiguration { @NotNull private ModuleConfiguration delegateConfiguration; @NotNull - private CompilerSpecialMode mode; + private BuiltinsScopeExtensionMode builtinsScopeExtensionMode; @Inject public void setProject(@NotNull Project project) { @@ -61,13 +62,13 @@ public class JavaBridgeConfiguration implements ModuleConfiguration { } @Inject - public void setMode(@NotNull CompilerSpecialMode mode) { - this.mode = mode; + public void setBuiltinsScopeExtensionMode(@NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { + this.builtinsScopeExtensionMode = builtinsScopeExtensionMode; } @PostConstruct public void init() { - this.delegateConfiguration = DefaultModuleConfiguration.createStandardConfiguration(project, mode == CompilerSpecialMode.BUILTINS); + this.delegateConfiguration = DefaultModuleConfiguration.createStandardConfiguration(project, builtinsScopeExtensionMode); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/BuiltinsScopeExtensionMode.java b/compiler/frontend/src/org/jetbrains/jet/lang/BuiltinsScopeExtensionMode.java new file mode 100644 index 00000000000..01f1cf26e43 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/BuiltinsScopeExtensionMode.java @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2012 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.jet.lang; + +/** + * @author Evgeny Gerashchenko + * @since 7/5/12 + */ +public enum BuiltinsScopeExtensionMode { + ALL, + ONLY_STANDARD_CLASSES +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/DefaultModuleConfiguration.java b/compiler/frontend/src/org/jetbrains/jet/lang/DefaultModuleConfiguration.java index 330d2674b66..01f3a60aeca 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/DefaultModuleConfiguration.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/DefaultModuleConfiguration.java @@ -18,7 +18,6 @@ package org.jetbrains.jet.lang; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.JetImportDirective; import org.jetbrains.jet.lang.psi.JetPsiFactory; @@ -39,15 +38,15 @@ public class DefaultModuleConfiguration implements ModuleConfiguration { new ImportPath("kotlin.*"), new ImportPath("kotlin.io.*"), new ImportPath("jet.*"), }; private final Project project; - private final boolean extendBuiltins; + private final @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode; - public static DefaultModuleConfiguration createStandardConfiguration(Project project, boolean extendBuiltins) { - return new DefaultModuleConfiguration(project, extendBuiltins); + public static DefaultModuleConfiguration createStandardConfiguration(Project project, @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { + return new DefaultModuleConfiguration(project, builtinsScopeExtensionMode); } - private DefaultModuleConfiguration(@NotNull Project project, boolean extendBuiltins) { + private DefaultModuleConfiguration(@NotNull Project project, @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { this.project = project; - this.extendBuiltins = extendBuiltins; + this.builtinsScopeExtensionMode = builtinsScopeExtensionMode; } @Override @@ -60,11 +59,13 @@ public class DefaultModuleConfiguration implements ModuleConfiguration { @Override public void extendNamespaceScope(@NotNull BindingTrace trace, @NotNull NamespaceDescriptor namespaceDescriptor, @NotNull WritableScope namespaceMemberScope) { if (DescriptorUtils.getFQName(namespaceDescriptor).equalsTo(JetStandardClasses.STANDARD_CLASSES_FQNAME)) { - if (!extendBuiltins) { - namespaceMemberScope.importScope(JetStandardClasses.STANDARD_CLASSES); - } - else { - namespaceMemberScope.importScope(JetStandardLibrary.getInstance().getLibraryScope()); + switch (builtinsScopeExtensionMode) { + case ALL: + namespaceMemberScope.importScope(JetStandardClasses.STANDARD_CLASSES); + break; + case ONLY_STANDARD_CLASSES: + namespaceMemberScope.importScope(JetStandardLibrary.getInstance().getLibraryScope()); + break; } } diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java index b1d6c79d7f3..cd9b022131f 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java @@ -41,6 +41,7 @@ import com.intellij.util.containers.Stack; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.codegen.*; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.psi.JetClass; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFunction; @@ -171,7 +172,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa AnalyzeExhaust context = AnalyzerFacadeForJVM.shallowAnalyzeFiles( JetFilesProvider.getInstance(project).sampleToAllFilesInModule().fun(file), // TODO: wrong environment // stepan.koltsov@ 2012-04-09 - CompilerSpecialMode.REGULAR); + BuiltinsScopeExtensionMode.ALL); if (context.isError()) { throw new IllegalStateException("failed to analyze: " + context.getError(), context.getError()); diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index 6d0c9220a35..1eadc260683 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -33,6 +33,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.Severity; import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnosticFactory; @@ -170,9 +171,9 @@ public class JetTestUtils { private JetTestUtils() { } - public static AnalyzeExhaust analyzeFile(@NotNull JetFile namespace, @NotNull CompilerSpecialMode compilerSpecialMode) { + public static AnalyzeExhaust analyzeFile(@NotNull JetFile namespace, @NotNull BuiltinsScopeExtensionMode builtinsScopeExtensionMode) { return AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(namespace, Collections.emptyList(), - compilerSpecialMode); + builtinsScopeExtensionMode); } public static JetCoreEnvironment createEnvironmentWithMockJdkAndIdeaAnnotations(Disposable disposable) { diff --git a/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java index 4be8c3b2e88..b9ec87899d2 100644 --- a/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java +++ b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java @@ -29,6 +29,7 @@ import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.analyzer.AnalyzeExhaust; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.cfg.pseudocode.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -73,7 +74,7 @@ public class JetControlFlowTest extends JetLiteFixture { JetFile file = loadPsiFile(myName + ".jet"); final Map data = new LinkedHashMap(); - AnalyzeExhaust analyzeExhaust = JetTestUtils.analyzeFile(file, CompilerSpecialMode.JDK_HEADERS); + AnalyzeExhaust analyzeExhaust = JetTestUtils.analyzeFile(file, BuiltinsScopeExtensionMode.ALL); List declarations = file.getDeclarations(); BindingContext bindingContext = analyzeExhaust.getBindingContext(); for (JetDeclaration declaration : declarations) { diff --git a/compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java b/compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java index 0764d0a3279..e24e08e7dc9 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java +++ b/compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java @@ -20,12 +20,12 @@ import com.google.common.collect.Lists; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetLiteFixture; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import java.util.Collections; import java.util.List; @@ -106,7 +106,7 @@ public class CheckerTestUtilTest extends JetLiteFixture { public void test(final @NotNull PsiFile psiFile) { BindingContext bindingContext = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration( - (JetFile) psiFile,Collections.emptyList(), CompilerSpecialMode.REGULAR) + (JetFile) psiFile,Collections.emptyList(), BuiltinsScopeExtensionMode.ALL) .getBindingContext(); String expectedText = CheckerTestUtil.addDiagnosticMarkersToText(psiFile, CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile)).toString(); diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java index 94fe666a2c6..33fb19c9a89 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java @@ -26,10 +26,10 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileFactory; import junit.framework.Test; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.utils.ExceptionUtils; import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -37,6 +37,7 @@ import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; +import org.jetbrains.jet.utils.ExceptionUtils; import java.io.File; import java.nio.charset.Charset; @@ -175,9 +176,7 @@ public class JetDiagnosticsTest extends JetLiteFixture { BindingContext bindingContext = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration( getProject(), jetFiles, Collections.emptyList(), - Predicates.alwaysTrue(), - myEnvironment.getCompilerSpecialMode()) - .getBindingContext(); + Predicates.alwaysTrue(), BuiltinsScopeExtensionMode.ALL).getBindingContext(); boolean ok = true; diff --git a/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java b/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java index 7fd1052dd98..57e3424a416 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java @@ -30,7 +30,6 @@ import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.plugin.JetLanguage; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Label; @@ -77,7 +76,7 @@ public class CheckLocalVariablesTableTest extends TestCaseWithTmpdir { .trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); assert psiFile != null; - final ClassFileFactory factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + final ClassFileFactory factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); String modifiedTestName = this.getName().replace(".kt", ".class"); boolean isClassFound = false; diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index f26b77d6af4..e9b2fba8af7 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -23,6 +23,7 @@ import com.intellij.psi.PsiFile; import com.intellij.testFramework.UsefulTestCase; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.utils.ExceptionUtils; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.analyzer.AnalyzeExhaust; @@ -259,7 +260,7 @@ public abstract class CodegenTestCase extends UsefulTestCase { myFiles.getPsiFiles(), myFiles.getScriptParameterTypes(), Predicates.alwaysTrue(), - myEnvironment.getCompilerSpecialMode()); + BuiltinsScopeExtensionMode.ALL); analyzeExhaust.throwIfError(); AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext()); GenerationState state = new GenerationState(myEnvironment.getProject(), classBuilderFactory, analyzeExhaust, myFiles.getPsiFiles()); diff --git a/compiler/tests/org/jetbrains/jet/codegen/CompileTextTest.java b/compiler/tests/org/jetbrains/jet/codegen/CompileTextTest.java index ccc012acd0f..4f7b37ba812 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CompileTextTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CompileTextTest.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.jet.cli.jvm.compiler.K2JVMCompileEnvironmentConfiguration; import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler; import org.jetbrains.jet.cli.common.messages.MessageCollector; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -28,7 +29,7 @@ public class CompileTextTest extends CodegenTestCase { createEnvironmentWithMockJdkAndIdeaAnnotations(); String text = "import org.jetbrains.jet.codegen.CompileTextTest; fun x() = CompileTextTest()"; K2JVMCompileEnvironmentConfiguration configuration = new K2JVMCompileEnvironmentConfiguration( - myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false); + myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false, BuiltinsScopeExtensionMode.ALL); configuration.getEnvironment().addToClasspathFromClassLoader(getClass().getClassLoader()); ClassLoader classLoader = KotlinToJVMBytecodeCompiler.compileText(configuration, text); Class namespace = classLoader.loadClass("namespace"); diff --git a/compiler/tests/org/jetbrains/jet/codegen/GenerationUtils.java b/compiler/tests/org/jetbrains/jet/codegen/GenerationUtils.java index f570c4b770e..2f8fd5adee6 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/GenerationUtils.java +++ b/compiler/tests/org/jetbrains/jet/codegen/GenerationUtils.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.analyzer.AnalyzeExhaust; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; @@ -30,13 +31,13 @@ import java.util.Collections; */ public class GenerationUtils { - public static ClassFileFactory compileFileGetClassFileFactoryForTest(@NotNull JetFile psiFile, @NotNull CompilerSpecialMode compilerSpecialMode) { - return compileFileGetGenerationStateForTest(psiFile, compilerSpecialMode).getFactory(); + public static ClassFileFactory compileFileGetClassFileFactoryForTest(@NotNull JetFile psiFile) { + return compileFileGetGenerationStateForTest(psiFile).getFactory(); } - public static GenerationState compileFileGetGenerationStateForTest(JetFile psiFile, @NotNull CompilerSpecialMode compilerSpecialMode) { + public static GenerationState compileFileGetGenerationStateForTest(JetFile psiFile) { final AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegrationAndCheckForErrors( - psiFile, Collections.emptyList(), compilerSpecialMode); + psiFile, Collections.emptyList(), BuiltinsScopeExtensionMode.ALL); analyzeExhaust.throwIfError(); GenerationState state = new GenerationState(psiFile.getProject(), ClassBuilderFactories.binaries(false), analyzeExhaust, Collections.singletonList(psiFile)); state.compileCorrectFiles(CompilationErrorHandler.THROW_EXCEPTION); diff --git a/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java b/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java index 83580b3d7c1..1b1d86c913d 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java @@ -21,6 +21,7 @@ import gnu.trove.THashSet; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.utils.ExceptionUtils; import org.jetbrains.jet.cli.common.messages.MessageCollector; import org.jetbrains.jet.cli.jvm.compiler.K2JVMCompileEnvironmentConfiguration; @@ -84,7 +85,8 @@ public class TestlibTest extends CodegenTestCase { myEnvironment.addSources(localFileSystem.findFileByPath(JetParsingTest.getTestDataDir() + "/../../libraries/kunit/src")); GenerationState generationState = KotlinToJVMBytecodeCompiler - .analyzeAndGenerate(new K2JVMCompileEnvironmentConfiguration(myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, false), false); + .analyzeAndGenerate(new K2JVMCompileEnvironmentConfiguration(myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR, + false, BuiltinsScopeExtensionMode.ALL), false); if (generationState == null) { throw new RuntimeException("There were compilation errors"); diff --git a/compiler/tests/org/jetbrains/jet/codegen/WriteAccessFlagsTest.java b/compiler/tests/org/jetbrains/jet/codegen/WriteAccessFlagsTest.java index 0ea5bcf630b..a452e2473bd 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/WriteAccessFlagsTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/WriteAccessFlagsTest.java @@ -30,7 +30,6 @@ import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.plugin.JetLanguage; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Opcodes; @@ -73,7 +72,7 @@ public class WriteAccessFlagsTest extends TestCaseWithTmpdir { .trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); assert psiFile != null; - final ClassFileFactory factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + final ClassFileFactory factory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); String modifiedTestName = this.getName().replace(".kt", ".class"); boolean isClassFound = false; diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTest.java index b230a5e604a..3170acf5442 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTest.java @@ -30,7 +30,6 @@ import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.junit.Assert; @@ -79,7 +78,7 @@ public class CompileJavaAgainstKotlinTest extends TestCaseWithTmpdir { virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); - ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); CompileEnvironmentUtil.writeToOutputDirectory(classFileFactory, tmpdir); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstKotlinTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstKotlinTest.java index b9649ee6ffd..34bd43c7b9e 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstKotlinTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstKotlinTest.java @@ -31,7 +31,6 @@ import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.TestCaseWithTmpdir; @@ -93,7 +92,7 @@ public class CompileKotlinAgainstKotlinTest extends TestCaseWithTmpdir { virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); - ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); CompileEnvironmentUtil.writeToOutputDirectory(classFileFactory, aDir); @@ -111,7 +110,7 @@ public class CompileKotlinAgainstKotlinTest extends TestCaseWithTmpdir { virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); - ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); CompileEnvironmentUtil.writeToOutputDirectory(classFileFactory, bDir); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/JavaDescriptorResolverTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/JavaDescriptorResolverTest.java index cf341f477f4..b495fe77737 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/JavaDescriptorResolverTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/JavaDescriptorResolverTest.java @@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; @@ -72,8 +73,8 @@ public class JavaDescriptorResolverTest extends TestCaseWithTmpdir { myTestRootDisposable, CompilerSpecialMode.JDK_HEADERS); jetCoreEnvironment.addToClasspath(tmpdir); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices( - CompilerSpecialMode.JDK_HEADERS, jetCoreEnvironment.getProject()); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, + jetCoreEnvironment.getProject()); return injector.getJavaDescriptorResolver(); } } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadJavaBinaryClassTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadJavaBinaryClassTest.java index da3907eefea..967eb3c793d 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadJavaBinaryClassTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadJavaBinaryClassTest.java @@ -27,6 +27,7 @@ import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -89,9 +90,7 @@ public class ReadJavaBinaryClassTest extends TestCaseWithTmpdir { JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); BindingContext bindingContext = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegrationAndCheckForErrors( - psiFile, Collections.emptyList(), - jetCoreEnvironment.getCompilerSpecialMode()) - .getBindingContext(); + psiFile, Collections.emptyList(), BuiltinsScopeExtensionMode.ALL).getBindingContext(); return bindingContext.get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, FqName.topLevel(Name.identifier("test"))); } @@ -117,8 +116,8 @@ public class ReadJavaBinaryClassTest extends TestCaseWithTmpdir { jetCoreEnvironment.addToClasspath(tmpdir); jetCoreEnvironment.addToClasspath(new File("out/production/runtime")); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices( - CompilerSpecialMode.JDK_HEADERS, jetCoreEnvironment.getProject()); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, + jetCoreEnvironment.getProject()); JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver(); return javaDescriptorResolver.resolveNamespace(FqName.topLevel(Name.identifier("test")), DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN); } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadKotlinBinaryClassTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadKotlinBinaryClassTest.java index ea263afcfa9..82654116ec0 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadKotlinBinaryClassTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/ReadKotlinBinaryClassTest.java @@ -33,13 +33,14 @@ import org.jetbrains.jet.codegen.ClassFileFactory; import org.jetbrains.jet.codegen.GenerationState; import org.jetbrains.jet.codegen.GenerationUtils; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.TestCaseWithTmpdir; @@ -74,7 +75,7 @@ public class ReadKotlinBinaryClassTest extends TestCaseWithTmpdir { virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); - GenerationState state = GenerationUtils.compileFileGetGenerationStateForTest(psiFile, CompilerSpecialMode.JDK_HEADERS); + GenerationState state = GenerationUtils.compileFileGetGenerationStateForTest(psiFile); ClassFileFactory classFileFactory = state.getFactory(); @@ -92,8 +93,8 @@ public class ReadKotlinBinaryClassTest extends TestCaseWithTmpdir { jetCoreEnvironment.addToClasspath(tmpdir); jetCoreEnvironment.addToClasspath(new File("out/production/runtime")); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices( - jetCoreEnvironment.getCompilerSpecialMode(), jetCoreEnvironment.getProject()); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, + jetCoreEnvironment.getProject()); JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver(); NamespaceDescriptor namespaceFromClass = javaDescriptorResolver.resolveNamespace(FqName.topLevel(Name.identifier("test")), DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java index 94b13dbef1e..076d92a1bd4 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java @@ -33,7 +33,6 @@ import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.TestCaseWithTmpdir; @@ -84,7 +83,7 @@ public class WriteSignatureTest extends TestCaseWithTmpdir { virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); - ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile, CompilerSpecialMode.REGULAR); + ClassFileFactory classFileFactory = GenerationUtils.compileFileGetClassFileFactoryForTest(psiFile); CompileEnvironmentUtil.writeToOutputDirectory(classFileFactory, tmpdir); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java index 19fec3af536..c7e596d0213 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/longTest/ResolveDescriptorsFromExternalLibraries.java @@ -32,6 +32,7 @@ import org.jetbrains.jet.TimeUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule; @@ -158,7 +159,7 @@ public class ResolveDescriptorsFromExternalLibraries { } - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(CompilerSpecialMode.STDLIB, jetCoreEnvironment.getProject()); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, jetCoreEnvironment.getProject()); boolean hasErrors; try { diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java index bf0f34908a2..23e5e69c90e 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveTest.java @@ -24,6 +24,7 @@ import com.intellij.psi.PsiFile; import org.jetbrains.jet.CompileCompilerDependenciesTest; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -74,7 +75,7 @@ public abstract class AbstractLazyResolveTest { protected InjectorForTopDownAnalyzerForJvm createInjectorForTDA(ModuleDescriptor module) { TopDownAnalysisParameters params = new TopDownAnalysisParameters( Predicates.alwaysTrue(), false, false, Collections.emptyList()); - return new InjectorForTopDownAnalyzerForJvm(project, params, new BindingTraceContext(), module, CompilerSpecialMode.JDK_HEADERS); + return new InjectorForTopDownAnalyzerForJvm(project, params, new BindingTraceContext(), module, BuiltinsScopeExtensionMode.ALL); } } diff --git a/compiler/tests/org/jetbrains/jet/resolve/DescriptorRendererTest.java b/compiler/tests/org/jetbrains/jet/resolve/DescriptorRendererTest.java index 4168094849e..17c9ec51483 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/DescriptorRendererTest.java +++ b/compiler/tests/org/jetbrains/jet/resolve/DescriptorRendererTest.java @@ -22,6 +22,7 @@ import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.analyzer.AnalyzeExhaust; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetFile; @@ -92,7 +93,7 @@ public class DescriptorRendererTest extends JetLiteFixture { AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration( (JetFile) psiFile, Collections.emptyList(), - myEnvironment.getCompilerSpecialMode()); + BuiltinsScopeExtensionMode.ALL); final BindingContext bindingContext = analyzeExhaust.getBindingContext(); final List descriptors = new ArrayList(); psiFile.acceptChildren(new JetVisitorVoid() { diff --git a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java index 037798a884a..b8695b57b85 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java +++ b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; @@ -154,9 +155,8 @@ public abstract class ExpectedResolveData { Project project = files.iterator().next().getProject(); JetStandardLibrary lib = JetStandardLibrary.getInstance(); - AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(project, files, Collections.emptyList(), - Predicates.alwaysTrue(), - jetCoreEnvironment.getCompilerSpecialMode()); + AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(project, files, + Collections.emptyList(), Predicates.alwaysTrue(), BuiltinsScopeExtensionMode.ALL); BindingContext bindingContext = analyzeExhaust.getBindingContext(); for (Diagnostic diagnostic : bindingContext.getDiagnostics()) { if (diagnostic.getFactory() instanceof UnresolvedReferenceDiagnosticFactory) { diff --git a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java index 980e326ba43..ec0df4c621d 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java +++ b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; import org.jetbrains.jet.di.InjectorForTests; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; @@ -124,8 +125,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { @NotNull private PsiClass findClass(String qualifiedName) { Project project = getProject(); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices( - myEnvironment.getCompilerSpecialMode(), project); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, project); return injector.getPsiClassFinder().findPsiClass(new FqName(qualifiedName), PsiClassFinder.RuntimeClassesHandleMode.THROW); } diff --git a/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java index e3d1297e14e..a347453c790 100644 --- a/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java @@ -20,6 +20,7 @@ import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.di.InjectorForTests; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -68,7 +69,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture { assert aClass instanceof JetClass; AnalyzeExhaust bindingContext = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(file, Collections.emptyList(), - myEnvironment.getCompilerSpecialMode()); + BuiltinsScopeExtensionMode.ALL); DeclarationDescriptor classDescriptor = bindingContext.getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, aClass); WritableScopeImpl scope = new WritableScopeImpl( libraryScope, root, RedeclarationHandler.DO_NOTHING, "JetDefaultModalityModifiersTest"); diff --git a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 5690576ae2b..61bba8b97b3 100644 --- a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -25,6 +25,7 @@ import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; import org.jetbrains.jet.di.InjectorForTests; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.psi.*; @@ -593,8 +594,7 @@ public class JetTypeCheckerTest extends JetLiteFixture { WritableScopeImpl writableScope = new WritableScopeImpl( scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "JetTypeCheckerTest.addImports"); writableScope.importScope(library.getLibraryScope()); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices( - myEnvironment.getCompilerSpecialMode(), getProject()); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, getProject()); JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver(); writableScope.importScope(javaDescriptorResolver.resolveNamespace(FqName.ROOT, DescriptorSearchRule.INCLUDE_KOTLIN).getMemberScope()); diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java index 6f81f8d2256..5109a1d72dc 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java @@ -27,16 +27,16 @@ import jet.runtime.typeinfo.JetClass; import jet.runtime.typeinfo.JetMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.di.InjectorForJavaSemanticServices; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; -import org.jetbrains.jet.lang.resolve.name.FqName; -import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode; import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.JvmAbi; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.*; @@ -61,7 +61,7 @@ class DecompiledDataFactory { private DecompiledDataFactory(ClsFileImpl clsFile) { myClsFile = clsFile; Project project = myClsFile.getProject(); - InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(CompilerSpecialMode.REGULAR, project); + InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, project); myBindingContext = injector.getBindingTrace().getBindingContext(); myJavaDescriptorResolver = injector.getJavaDescriptorResolver(); } diff --git a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java b/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java index 51715f3ec62..5cdf657cd5c 100644 --- a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java +++ b/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.di; import com.intellij.openapi.project.Project; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.psi.JetFile; @@ -88,7 +89,7 @@ public class AllInjectorsGenerator { private static void generateInjectorForTopDownAnalyzerForJvm() throws IOException { DependencyInjectorGenerator generator = new DependencyInjectorGenerator(false); generateInjectorForTopDownAnalyzerCommon(generator); - generator.addParameter(CompilerSpecialMode.class); + generator.addParameter(BuiltinsScopeExtensionMode.class); generator.addPublicField(JavaBridgeConfiguration.class); generator.addField(JavaDescriptorResolver.class); generator.addField(PsiClassFinderImpl.class); @@ -151,8 +152,9 @@ public class AllInjectorsGenerator { generator.addField(JavaBridgeConfiguration.class); generator.addPublicField(PsiClassFinderImpl.class); generator.addField(false, ModuleDescriptor.class, null, - new GivenExpression("new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(org.jetbrains.jet.lang.resolve.name.Name.special(\"\"))")); - generator.addParameter(CompilerSpecialMode.class); + new GivenExpression("new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(" + + "org.jetbrains.jet.lang.resolve.name.Name.special(\"\"))")); + generator.addParameter(BuiltinsScopeExtensionMode.class); // Parameters generator.addPublicParameter(Project.class); diff --git a/js/js.translator/src/org/jetbrains/k2js/analyze/JsConfiguration.java b/js/js.translator/src/org/jetbrains/k2js/analyze/JsConfiguration.java index 622f495f250..c69037c1b37 100644 --- a/js/js.translator/src/org/jetbrains/k2js/analyze/JsConfiguration.java +++ b/js/js.translator/src/org/jetbrains/k2js/analyze/JsConfiguration.java @@ -19,6 +19,7 @@ package org.jetbrains.k2js.analyze; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.DefaultModuleConfiguration; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; @@ -71,7 +72,7 @@ public final class JsConfiguration implements ModuleConfiguration { @Override public void extendNamespaceScope(@NotNull BindingTrace trace, @NotNull NamespaceDescriptor namespaceDescriptor, @NotNull WritableScope namespaceMemberScope) { - DefaultModuleConfiguration.createStandardConfiguration(project, true) + DefaultModuleConfiguration.createStandardConfiguration(project, BuiltinsScopeExtensionMode.ALL) .extendNamespaceScope(trace, namespaceDescriptor, namespaceMemberScope); if (hasPreanalyzedContextForTests()) { extendScopeWithPreAnalyzedContextForTests(namespaceDescriptor, namespaceMemberScope);