Load compiler language version settings for resolved calls tests
This commit is contained in:
@@ -32,9 +32,8 @@ import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeUtil;
|
||||
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
|
||||
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl;
|
||||
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
|
||||
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeysKt;
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||
@@ -45,11 +44,8 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettings;
|
||||
|
||||
public abstract class AbstractPseudocodeTest extends KotlinTestWithEnvironmentManagement {
|
||||
protected void doTestWithStdLib(String fileName) throws Exception {
|
||||
doTestWithEnvironment(fileName, createEnvironmentWithMockJdk(ConfigurationKind.NO_KOTLIN_REFLECT));
|
||||
@@ -59,23 +55,16 @@ public abstract class AbstractPseudocodeTest extends KotlinTestWithEnvironmentMa
|
||||
doTestWithEnvironment(fileName, createEnvironmentWithMockJdk(ConfigurationKind.JDK_ONLY));
|
||||
}
|
||||
|
||||
private static void setupLanguageVersionSettings(File file, KotlinCoreEnvironment environment) throws IOException {
|
||||
String fileText = FileUtil.loadFile(file, true);
|
||||
Map<String, String> directives = KotlinTestUtils.parseDirectives(fileText);
|
||||
LanguageVersionSettings languageVersionSettings = parseLanguageVersionSettings(directives);
|
||||
if (languageVersionSettings != null) {
|
||||
CommonConfigurationKeysKt.setLanguageVersionSettings(environment.getConfiguration(), languageVersionSettings);
|
||||
}
|
||||
}
|
||||
|
||||
private void doTestWithEnvironment(String fileName, KotlinCoreEnvironment environment) throws Exception {
|
||||
File file = new File(fileName);
|
||||
setupLanguageVersionSettings(file, environment);
|
||||
KtFile jetFile = KotlinTestUtils.loadJetFile(environment.getProject(), file);
|
||||
|
||||
CompilerTestLanguageVersionSettingsKt.setupLanguageVersionSettings(FileUtil.loadFile(file, true), environment);
|
||||
|
||||
KtFile ktFile = KotlinTestUtils.loadJetFile(environment.getProject(), file);
|
||||
|
||||
SetMultimap<KtElement, Pseudocode> data = LinkedHashMultimap.create();
|
||||
AnalysisResult analysisResult = KotlinTestUtils.analyzeFile(jetFile, environment);
|
||||
List<KtDeclaration> declarations = jetFile.getDeclarations();
|
||||
AnalysisResult analysisResult = KotlinTestUtils.analyzeFile(ktFile, environment);
|
||||
List<KtDeclaration> declarations = ktFile.getDeclarations();
|
||||
BindingContext bindingContext = analysisResult.getBindingContext();
|
||||
for (KtDeclaration declaration : declarations) {
|
||||
addDeclaration(data, bindingContext, declaration);
|
||||
|
||||
Reference in New Issue
Block a user