Enable ultra-light classes by default
^KT-29267 Fixed
This commit is contained in:
committed by
Igor Yakovlev
parent
e8fbd42f7c
commit
1b5f72bd59
+2
-1
@@ -65,7 +65,8 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
||||
if (element.shouldNotBeVisibleAsLightClass() ||
|
||||
element is KtObjectDeclaration && element.isObjectLiteral() ||
|
||||
element.isLocal ||
|
||||
element is KtEnumEntry
|
||||
element is KtEnumEntry ||
|
||||
element.containingKtFile.isScript()
|
||||
) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
<registryKey key="kotlin.use.ultra.light.classes"
|
||||
description="Whether to use an experimental implementation of Kotlin-as-Java classes"
|
||||
defaultValue="false"
|
||||
defaultValue="true"
|
||||
restartRequired="false"/>
|
||||
|
||||
<registryKey key="kotlin.uast.multiresolve.enabled"
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
<registryKey key="kotlin.use.ultra.light.classes"
|
||||
description="Whether to use an experimental implementation of Kotlin-as-Java classes"
|
||||
defaultValue="false"
|
||||
defaultValue="true"
|
||||
restartRequired="false"/>
|
||||
|
||||
<registryKey key="kotlin.uast.multiresolve.enabled"
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// ULTRA_LIGHT_CLASSES
|
||||
package test
|
||||
|
||||
expect interface Closable {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.checkers
|
||||
|
||||
import org.jetbrains.kotlin.idea.perf.forceUsingUltraLightClassesForTest
|
||||
import org.jetbrains.kotlin.idea.perf.forceUsingOldLightClassesForTest
|
||||
|
||||
abstract class AbstractJavaAgainstKotlinSourceCheckerTest : AbstractJavaAgainstKotlinCheckerTest() {
|
||||
fun doTest(path: String) {
|
||||
@@ -13,9 +13,9 @@ abstract class AbstractJavaAgainstKotlinSourceCheckerTest : AbstractJavaAgainstK
|
||||
}
|
||||
}
|
||||
|
||||
abstract class AbstractJavaAgainstKotlinSourceCheckerWithUltraLightTest : AbstractJavaAgainstKotlinSourceCheckerTest() {
|
||||
abstract class AbstractJavaAgainstKotlinSourceCheckerWithoutUltraLightTest : AbstractJavaAgainstKotlinSourceCheckerTest() {
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
forceUsingUltraLightClassesForTest()
|
||||
forceUsingOldLightClassesForTest()
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -18,11 +18,11 @@ import java.util.regex.Pattern;
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public class JavaAgainstKotlinSourceCheckerWithUltraLightTestGenerated extends AbstractJavaAgainstKotlinSourceCheckerWithUltraLightTest {
|
||||
public class JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated extends AbstractJavaAgainstKotlinSourceCheckerWithoutUltraLightTest {
|
||||
@TestMetadata("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class JavaAgainstKotlin extends AbstractJavaAgainstKotlinSourceCheckerWithUltraLightTest {
|
||||
public static class JavaAgainstKotlin extends AbstractJavaAgainstKotlinSourceCheckerWithoutUltraLightTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
|
||||
}
|
||||
@@ -195,7 +195,7 @@ public class JavaAgainstKotlinSourceCheckerWithUltraLightTestGenerated extends A
|
||||
@TestMetadata("idea/testData/kotlinAndJavaChecker/javaWithKotlin")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class JavaWithKotlin extends AbstractJavaAgainstKotlinSourceCheckerWithUltraLightTest {
|
||||
public static class JavaWithKotlin extends AbstractJavaAgainstKotlinSourceCheckerWithoutUltraLightTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
|
||||
}
|
||||
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.idea.KotlinDaemonAnalyzerTestCase
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassConstructionContext
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.LightClassLazinessChecker.Tracker.Level.*
|
||||
import org.jetbrains.kotlin.idea.completion.test.withServiceRegistered
|
||||
import org.jetbrains.kotlin.idea.perf.forceUsingOldLightClassesForTest
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
|
||||
@@ -44,6 +45,7 @@ import kotlin.test.assertTrue
|
||||
|
||||
abstract class AbstractIdeLightClassTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
fun doTest(testDataPath: String) {
|
||||
forceUsingOldLightClassesForTest()
|
||||
val extraFilePath = when {
|
||||
testDataPath.endsWith(".kt") -> testDataPath.replace(".kt", ".extra.kt")
|
||||
testDataPath.endsWith(".kts") -> testDataPath.replace(".kts", ".extra.kts")
|
||||
|
||||
@@ -49,8 +49,8 @@ public class LightClassEqualsTest extends KotlinLightCodeInsightFixtureTestCase
|
||||
private static void doTestEquals(@Nullable KtClassOrObject origin) {
|
||||
assertNotNull(origin);
|
||||
|
||||
PsiClass lightClass1 = KtLightClassForSourceDeclaration.Companion.createNoCache(origin);
|
||||
PsiClass lightClass2 = KtLightClassForSourceDeclaration.Companion.createNoCache(origin);
|
||||
PsiClass lightClass1 = KtLightClassForSourceDeclaration.Companion.createNoCache(origin, true);
|
||||
PsiClass lightClass2 = KtLightClassForSourceDeclaration.Companion.createNoCache(origin, true);
|
||||
assertNotNull(lightClass1);
|
||||
assertNotNull(lightClass2);
|
||||
|
||||
|
||||
-5
@@ -13,12 +13,10 @@ import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiFile
|
||||
import org.jetbrains.kotlin.idea.codeInsight.GotoSuperActionHandler
|
||||
import org.jetbrains.kotlin.idea.multiplatform.setupMppProjectFromDirStructure
|
||||
import org.jetbrains.kotlin.idea.perf.forceUsingUltraLightClassesForTest
|
||||
import org.jetbrains.kotlin.idea.stubs.AbstractMultiModuleTest
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.idea.test.extractMarkerOffset
|
||||
import org.jetbrains.kotlin.idea.test.findFileWithCaret
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractKotlinNavigationMultiModuleTest : AbstractMultiModuleTest() {
|
||||
@@ -27,9 +25,6 @@ abstract class AbstractKotlinNavigationMultiModuleTest : AbstractMultiModuleTest
|
||||
protected fun doTest(testDataDir: String) {
|
||||
setupMppProjectFromDirStructure(File(testDataDir))
|
||||
val file = project.findFileWithCaret()
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(file.text, "ULTRA_LIGHT_CLASSES")) {
|
||||
forceUsingUltraLightClassesForTest()
|
||||
}
|
||||
|
||||
val doc = PsiDocumentManager.getInstance(myProject).getDocument(file)!!
|
||||
val offset = doc.extractMarkerOffset(project, "<caret>")
|
||||
|
||||
@@ -19,10 +19,10 @@ import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.junit.Assert
|
||||
|
||||
fun UsefulTestCase.forceUsingUltraLightClassesForTest() {
|
||||
KtUltraLightClass.forceUsingUltraLightClasses = true
|
||||
fun UsefulTestCase.forceUsingOldLightClassesForTest() {
|
||||
KtUltraLightClass.forceUsingOldLightClasses = true
|
||||
Disposer.register(testRootDisposable, Disposable {
|
||||
KtUltraLightClass.forceUsingUltraLightClasses = false
|
||||
KtUltraLightClass.forceUsingOldLightClasses = false
|
||||
})
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ object UltraLightChecker {
|
||||
SyntaxTraverser.psiTraverser(file).filter(KtClassOrObject::class.java).toList()
|
||||
|
||||
fun checkClassEquivalence(ktClass: KtClassOrObject): KtUltraLightClass? {
|
||||
val gold = KtLightClassForSourceDeclaration.create(ktClass)
|
||||
val gold = KtLightClassForSourceDeclaration.createNoCache(ktClass, forceUsingOldLightClasses = true)
|
||||
val ultraLightClass = LightClassGenerationSupport.getInstance(ktClass.project).createUltraLightClass(ktClass) ?: return null
|
||||
|
||||
if (gold != null) {
|
||||
|
||||
-2
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.asJava.toLightMethods
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.perf.forceUsingUltraLightClassesForTest
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.ui.KotlinChangeSignatureDialog.Companion.getTypeCodeFragmentContext
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.ui.KotlinChangeSignatureDialog.Companion.getTypeInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.ui.KotlinMethodNode
|
||||
@@ -568,7 +567,6 @@ class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
fun testConvertParameterToReceiverForMember1() = doTest { receiverParameterInfo = newParameters[0] }
|
||||
|
||||
fun testConvertParameterToReceiverForMemberUltraLight() {
|
||||
forceUsingUltraLightClassesForTest()
|
||||
doTest { receiverParameterInfo = newParameters[0] }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user