[ULC] Fixed invalid constructor parameter list for UL script
This commit is contained in:
+7
-1
@@ -62,13 +62,19 @@ class KtUltraLightClassForScript(
|
||||
}
|
||||
|
||||
private fun MutableList<KtLightMethod>.addScriptDefaultMethods() {
|
||||
|
||||
val defaultConstructorDelegate = LightMethodBuilder(manager, language, name)
|
||||
.setConstructor(true)
|
||||
.addModifier(PsiModifier.PUBLIC)
|
||||
|
||||
val defaultConstructor = KtUltraLightMethodForSourceDeclaration(
|
||||
delegate = LightMethodBuilder(manager, language, name).setConstructor(true).addModifier(PsiModifier.PUBLIC),
|
||||
delegate = defaultConstructorDelegate,
|
||||
declaration = script,
|
||||
support = support,
|
||||
containingClass = this@KtUltraLightClassForScript,
|
||||
methodIndex = METHOD_INDEX_FOR_DEFAULT_CTOR,
|
||||
)
|
||||
defaultConstructorDelegate.addParameter(KtUltraLightScriptMainParameter(defaultConstructor))
|
||||
add(defaultConstructor)
|
||||
|
||||
val methodBuilder = LightMethodBuilder(manager, language, "main").apply {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
public class FunsPropsAndFields /* FunsPropsAndFields*/ {
|
||||
@kotlin.jvm.JvmField()
|
||||
public final int testField;
|
||||
|
||||
private final int testPropVal;
|
||||
|
||||
private int testPropVar;
|
||||
|
||||
@null()
|
||||
public FunsPropsAndFields(@null() java.lang.String[]);// .ctor(java.lang.String[])
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String testFun(int);// testFun(int)
|
||||
|
||||
public final int getTestPropVal();// getTestPropVal()
|
||||
|
||||
public final int getTestPropVar();// getTestPropVar()
|
||||
|
||||
public final void setTestPropVar(int);// setTestPropVar(int)
|
||||
|
||||
public static final void main(@null() java.lang.String[]);// main(java.lang.String[])
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
public class HelloWorld /* HelloWorld*/ {
|
||||
@null()
|
||||
public HelloWorld(@null() java.lang.String[]);// .ctor(java.lang.String[])
|
||||
|
||||
public static final void main(@null() java.lang.String[]);// main(java.lang.String[])
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
public class InnerClasses /* InnerClasses*/ {
|
||||
@null()
|
||||
public InnerClasses(@null() java.lang.String[]);// .ctor(java.lang.String[])
|
||||
|
||||
public static final void main(@null() java.lang.String[]);// main(java.lang.String[])
|
||||
|
||||
|
||||
class Bar ...
|
||||
|
||||
}
|
||||
@@ -7,12 +7,16 @@ package org.jetbrains.kotlin.asJava.classes
|
||||
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
||||
import org.jetbrains.kotlin.asJava.PsiClassRenderer.renderClass
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
||||
import org.jetbrains.kotlin.idea.perf.UltraLightChecker.checkDescriptorsLeak
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.junit.Assert
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractUltraLightScriptLoadingTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
@@ -29,6 +33,17 @@ abstract class AbstractUltraLightScriptLoadingTest : KotlinLightCodeInsightFixtu
|
||||
|
||||
ScriptConfigurationManager.updateScriptDependenciesSynchronously(file)
|
||||
|
||||
val expectedTextFile = File(testDataPath.replaceFirst("\\.kts\$".toRegex(), ".java"))
|
||||
if (expectedTextFile.exists()) {
|
||||
val ultraLightScript = LightClassGenerationSupport.getInstance(script.project).createUltraLightClassForScript(script)
|
||||
TestCase.assertTrue(ultraLightScript is KtUltraLightClassForScript)
|
||||
ultraLightScript!!
|
||||
val renderedResult = ultraLightScript.renderClass()
|
||||
KotlinTestUtils.assertEqualsToFile(expectedTextFile, renderedResult)
|
||||
checkDescriptorsLeak(ultraLightScript)
|
||||
return
|
||||
}
|
||||
|
||||
val ultraLightClass = UltraLightChecker.checkScriptEquivalence(script)
|
||||
checkDescriptorsLeak(ultraLightClass)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user