new fixes
This commit is contained in:
+3
-2
@@ -33,13 +33,13 @@ import org.jetbrains.kotlin.context.ProjectContext
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.lazy.PackageMappingProvider
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.JvmPackageMappingProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
@@ -91,7 +91,8 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
|
|||||||
ProjectContext(environment.project), listOf(builtInModule),
|
ProjectContext(environment.project), listOf(builtInModule),
|
||||||
{ ModuleContent(files, GlobalSearchScope.EMPTY_SCOPE) },
|
{ ModuleContent(files, GlobalSearchScope.EMPTY_SCOPE) },
|
||||||
JvmPlatformParameters { throw IllegalStateException() },
|
JvmPlatformParameters { throw IllegalStateException() },
|
||||||
CompilerEnvironment
|
CompilerEnvironment,
|
||||||
|
packageMappingProviderFactory = { a, b -> JvmPackageMappingProvider(environment) }
|
||||||
)
|
)
|
||||||
|
|
||||||
val moduleDescriptor = resolver.descriptorForModule(builtInModule)
|
val moduleDescriptor = resolver.descriptorForModule(builtInModule)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
@kotlin.jvm.internal.KotlinSyntheticClass(abiVersion = 23, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.PACKAGE_PART)
|
|
||||||
public final class SingleFileKt {
|
public final class SingleFileKt {
|
||||||
public static final void foo() { /* compiled code */ }
|
public static final void foo() { /* compiled code */ }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public abstract class AbstractPseudocodeTest extends KotlinTestWithEnvironment {
|
|||||||
JetFile jetFile = JetTestUtils.loadJetFile(getProject(), file);
|
JetFile jetFile = JetTestUtils.loadJetFile(getProject(), file);
|
||||||
|
|
||||||
Map<JetElement, Pseudocode> data = new LinkedHashMap<JetElement, Pseudocode>();
|
Map<JetElement, Pseudocode> data = new LinkedHashMap<JetElement, Pseudocode>();
|
||||||
AnalysisResult analysisResult = JetTestUtils.analyzeFile(jetFile);
|
AnalysisResult analysisResult = JetTestUtils.analyzeFile(jetFile, getEnvironment());
|
||||||
List<JetDeclaration> declarations = jetFile.getDeclarations();
|
List<JetDeclaration> declarations = jetFile.getDeclarations();
|
||||||
BindingContext bindingContext = analysisResult.getBindingContext();
|
BindingContext bindingContext = analysisResult.getBindingContext();
|
||||||
for (JetDeclaration declaration : declarations) {
|
for (JetDeclaration declaration : declarations) {
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ import org.jetbrains.kotlin.resolve.calls.model.MutableResolvedCall;
|
|||||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics;
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
|
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.JvmPackageMappingProvider;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.load.java.lazy.PackageMappingProvider;
|
|
||||||
import org.jetbrains.kotlin.storage.ExceptionTracker;
|
import org.jetbrains.kotlin.storage.ExceptionTracker;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.kotlin.storage.StorageManager;
|
import org.jetbrains.kotlin.storage.StorageManager;
|
||||||
@@ -248,7 +248,7 @@ public abstract class AbstractJetDiagnosticsTest extends BaseDiagnosticsTest {
|
|||||||
moduleTrace,
|
moduleTrace,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
PackageMappingProvider.EMPTY
|
new JvmPackageMappingProvider(getEnvironment())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,8 +52,9 @@ public class CompileEnvironmentTest extends TestCase {
|
|||||||
"-annotations", jdkAnnotations.getAbsolutePath()
|
"-annotations", jdkAnnotations.getAbsolutePath()
|
||||||
);
|
);
|
||||||
Assert.assertEquals(ExitCode.OK, exitCode);
|
Assert.assertEquals(ExitCode.OK, exitCode);
|
||||||
assertEquals(1, out.listFiles().length);
|
assertEquals(2, out.listFiles().length);
|
||||||
assertEquals(2, out.listFiles()[0].listFiles().length);
|
assertEquals(1, out.listFiles()[0].listFiles().length);//META-INF
|
||||||
|
assertEquals(2, out.listFiles()[1].listFiles().length);//Smoke package
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
FileUtil.delete(tempDir);
|
FileUtil.delete(tempDir);
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ public final class LoadDescriptorUtil {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
AnalysisResult result = JvmResolveUtil.analyzeFilesWithJavaIntegrationAndCheckForErrors(
|
AnalysisResult result = JvmResolveUtil.analyzeFilesWithJavaIntegrationAndCheckForErrors(
|
||||||
jetCoreEnvironment.getProject(), jetFiles);
|
jetCoreEnvironment.getProject(), jetFiles, new JvmPackageMappingProvider(jetCoreEnvironment));
|
||||||
return new JetFilesAndAnalysisResult(jetFiles, result);
|
return new JetFilesAndAnalysisResult(jetFiles, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.JvmPackageMappingProvider
|
||||||
import org.jetbrains.kotlin.test.JetTestUtils
|
import org.jetbrains.kotlin.test.JetTestUtils
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils
|
import org.jetbrains.kotlin.types.ErrorUtils
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
@@ -65,7 +66,8 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
|||||||
val moduleName = javaClass.getName().asString().toLowerCase().first().toString()
|
val moduleName = javaClass.getName().asString().toLowerCase().first().toString()
|
||||||
modules.first { it._name == moduleName }
|
modules.first { it._name == moduleName }
|
||||||
},
|
},
|
||||||
CompilerEnvironment
|
CompilerEnvironment,
|
||||||
|
packageMappingProviderFactory = { a, b -> JvmPackageMappingProvider(environment)}
|
||||||
)
|
)
|
||||||
|
|
||||||
performChecks(resolverForProject, modules)
|
performChecks(resolverForProject, modules)
|
||||||
|
|||||||
+2
-2
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
|
|||||||
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
|
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
|
||||||
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy
|
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmPackageMappingProvider
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||||
import org.jetbrains.kotlin.resolve.scopes.*
|
import org.jetbrains.kotlin.resolve.scopes.*
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
||||||
import org.jetbrains.kotlin.test.*
|
import org.jetbrains.kotlin.test.*
|
||||||
@@ -82,7 +82,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
|
|
||||||
val classLoader = URLClassLoader(arrayOf(tmpdir.toURI().toURL()), ForTestCompileRuntime.runtimeAndReflectJarClassLoader())
|
val classLoader = URLClassLoader(arrayOf(tmpdir.toURI().toURL()), ForTestCompileRuntime.runtimeAndReflectJarClassLoader())
|
||||||
|
|
||||||
val actual = createReflectedPackageView(classLoader, "")
|
val actual = createReflectedPackageView(classLoader, JvmResolveUtil.TEST_MODULE_NAME)
|
||||||
|
|
||||||
val expected = LoadDescriptorUtil.loadTestPackageAndBindingContextFromJavaRoot(
|
val expected = LoadDescriptorUtil.loadTestPackageAndBindingContextFromJavaRoot(
|
||||||
tmpdir, getTestRootDisposable(), jdkKind, ConfigurationKind.ALL, true
|
tmpdir, getTestRootDisposable(), jdkKind, ConfigurationKind.ALL, true
|
||||||
|
|||||||
+1
-6
@@ -338,7 +338,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends JetLiteFix
|
|||||||
@NotNull
|
@NotNull
|
||||||
protected JetFile getFile(@NotNull String content) {
|
protected JetFile getFile(@NotNull String content) {
|
||||||
JetFile ktFile = JetTestUtils.createFile("dummy.kt", content, getProject());
|
JetFile ktFile = JetTestUtils.createFile("dummy.kt", content, getProject());
|
||||||
AnalysisResult analysisResult = analyzeFile(ktFile);
|
AnalysisResult analysisResult = JetTestUtils.analyzeFile(ktFile, getEnvironment());
|
||||||
context = analysisResult.getBindingContext();
|
context = analysisResult.getBindingContext();
|
||||||
|
|
||||||
return ktFile;
|
return ktFile;
|
||||||
@@ -356,11 +356,6 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends JetLiteFix
|
|||||||
return getPackage(getFile(content));
|
return getPackage(getFile(content));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
protected AnalysisResult analyzeFile(@NotNull JetFile ktFile) {
|
|
||||||
return JetTestUtils.analyzeFile(ktFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static String getContent(@NotNull String annotationText) throws IOException {
|
protected static String getContent(@NotNull String annotationText) throws IOException {
|
||||||
File file = new File(PATH);
|
File file = new File(PATH);
|
||||||
return JetTestUtils.doLoadFile(file).replaceAll("ANNOTATION", annotationText);
|
return JetTestUtils.doLoadFile(file).replaceAll("ANNOTATION", annotationText);
|
||||||
|
|||||||
-7
@@ -16,16 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.resolve.annotation
|
package org.jetbrains.kotlin.resolve.annotation
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
|
||||||
import org.jetbrains.kotlin.psi.JetFile
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
|
||||||
|
|
||||||
class AnnotationDescriptorResolveWithoutAnalyzeBodyTest : AnnotationDescriptorResolveTest() {
|
class AnnotationDescriptorResolveWithoutAnalyzeBodyTest : AnnotationDescriptorResolveTest() {
|
||||||
|
|
||||||
override fun doTest(content: String, expectedAnnotation: String) {
|
override fun doTest(content: String, expectedAnnotation: String) {
|
||||||
checkAnnotationOnAllExceptLocalDeclarations(content, expectedAnnotation)
|
checkAnnotationOnAllExceptLocalDeclarations(content, expectedAnnotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun analyzeFile(ktFile: JetFile): AnalysisResult =
|
|
||||||
JvmResolveUtil.analyzeFilesWithJavaIntegration(ktFile.getProject(), setOf(ktFile), environment);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public abstract class AbstractResolvedCallsTest : JetLiteFixture() {
|
|||||||
val text = JetTestUtils.doLoadFile(File(filePath))!!
|
val text = JetTestUtils.doLoadFile(File(filePath))!!
|
||||||
|
|
||||||
val jetFile = JetPsiFactory(getProject()).createFile(text.replace("<caret>", ""))
|
val jetFile = JetPsiFactory(getProject()).createFile(text.replace("<caret>", ""))
|
||||||
val bindingContext = JvmResolveUtil.analyzeOneFileWithJavaIntegration(jetFile).bindingContext
|
val bindingContext = JvmResolveUtil.analyzeOneFileWithJavaIntegration(jetFile, environment).bindingContext
|
||||||
|
|
||||||
val (element, cachedCall) = buildCachedCall(bindingContext, jetFile, text)
|
val (element, cachedCall) = buildCachedCall(bindingContext, jetFile, text)
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ import java.util.Collection;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
public class JvmResolveUtil {
|
public class JvmResolveUtil {
|
||||||
|
|
||||||
|
public static String TEST_MODULE_NAME = "java-integration-test";
|
||||||
@NotNull
|
@NotNull
|
||||||
public static AnalysisResult analyzeOneFileWithJavaIntegrationAndCheckForErrors(@NotNull JetFile file) {
|
public static AnalysisResult analyzeOneFileWithJavaIntegrationAndCheckForErrors(@NotNull JetFile file) {
|
||||||
return analyzeOneFileWithJavaIntegrationAndCheckForErrors(file, PackageMappingProvider.EMPTY);
|
return analyzeOneFileWithJavaIntegrationAndCheckForErrors(file, PackageMappingProvider.EMPTY);
|
||||||
@@ -48,6 +50,11 @@ public class JvmResolveUtil {
|
|||||||
return analysisResult;
|
return analysisResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static AnalysisResult analyzeOneFileWithJavaIntegration(@NotNull JetFile file, @NotNull KotlinCoreEnvironment environment) {
|
||||||
|
return analyzeOneFileWithJavaIntegration(file, new JvmPackageMappingProvider(environment));
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static AnalysisResult analyzeOneFileWithJavaIntegration(@NotNull JetFile file, @NotNull PackageMappingProvider provider) {
|
public static AnalysisResult analyzeOneFileWithJavaIntegration(@NotNull JetFile file, @NotNull PackageMappingProvider provider) {
|
||||||
return analyzeFilesWithJavaIntegration(file.getProject(), Collections.singleton(file), provider);
|
return analyzeFilesWithJavaIntegration(file.getProject(), Collections.singleton(file), provider);
|
||||||
@@ -98,7 +105,8 @@ public class JvmResolveUtil {
|
|||||||
@NotNull Collection<JetFile> files,
|
@NotNull Collection<JetFile> files,
|
||||||
@NotNull PackageMappingProvider packageMappingProvider
|
@NotNull PackageMappingProvider packageMappingProvider
|
||||||
) {
|
) {
|
||||||
ModuleContext moduleContext = TopDownAnalyzerFacadeForJVM.createContextWithSealedModule(project, "java-integration-test");
|
|
||||||
|
ModuleContext moduleContext = TopDownAnalyzerFacadeForJVM.createContextWithSealedModule(project, TEST_MODULE_NAME);
|
||||||
|
|
||||||
BindingTrace trace = new CliLightClassGenerationSupport.CliBindingTrace();
|
BindingTrace trace = new CliLightClassGenerationSupport.CliBindingTrace();
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ import org.jetbrains.kotlin.psi.JetFile;
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics;
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics;
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.JvmPackageMappingProvider;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
||||||
@@ -286,8 +287,8 @@ public class JetTestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static AnalysisResult analyzeFile(@NotNull JetFile file) {
|
public static AnalysisResult analyzeFile(@NotNull JetFile file, @NotNull KotlinCoreEnvironment environment) {
|
||||||
return JvmResolveUtil.analyzeOneFileWithJavaIntegration(file);
|
return JvmResolveUtil.analyzeOneFileWithJavaIntegration(file, environment);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class RecursiveDescriptorProcessorTest extends KotlinTestWithEnvironment
|
|||||||
File txtFile = new File("compiler/testData/recursiveProcessor/declarations.txt");
|
File txtFile = new File("compiler/testData/recursiveProcessor/declarations.txt");
|
||||||
String text = FileUtil.loadFile(ktFile, true);
|
String text = FileUtil.loadFile(ktFile, true);
|
||||||
JetFile jetFile = JetTestUtils.createFile("declarations.kt", text, getEnvironment().getProject());
|
JetFile jetFile = JetTestUtils.createFile("declarations.kt", text, getEnvironment().getProject());
|
||||||
AnalysisResult result = JetTestUtils.analyzeFile(jetFile);
|
AnalysisResult result = JetTestUtils.analyzeFile(jetFile, getEnvironment());
|
||||||
PackageViewDescriptor testPackage = result.getModuleDescriptor().getPackage(FqName.topLevel(Name.identifier("test")));
|
PackageViewDescriptor testPackage = result.getModuleDescriptor().getPackage(FqName.topLevel(Name.identifier("test")));
|
||||||
|
|
||||||
List<String> descriptors = recursivelyCollectDescriptors(testPackage);
|
List<String> descriptors = recursivelyCollectDescriptors(testPackage);
|
||||||
|
|||||||
-1
@@ -58,5 +58,4 @@ public open class DeserializedNewPackageMemberScope(
|
|||||||
|
|
||||||
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean)
|
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean)
|
||||||
= membersList.flatMap { it.getDescriptors(kindFilter, nameFilter) }
|
= membersList.flatMap { it.getDescriptors(kindFilter, nameFilter) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user