diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt index f7891549438..692418b2308 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt @@ -214,7 +214,7 @@ class KtLightMethodImpl private constructor( override fun hasTypeParameters() = clsDelegate.hasTypeParameters() - override fun isVarArgs() = clsDelegate.isVarArgs + override fun isVarArgs() = (dummyDelegate ?: clsDelegate).isVarArgs override fun isConstructor() = dummyDelegate?.isConstructor ?: clsDelegate.isConstructor diff --git a/compiler/testData/asJava/lightClasses/VarArgs.java b/compiler/testData/asJava/lightClasses/VarArgs.java new file mode 100644 index 00000000000..cf9fbfd42f0 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/VarArgs.java @@ -0,0 +1,7 @@ +public final class C { + public final void f(@org.jetbrains.annotations.NotNull int... i) { /* compiled code */ } + + public final void p(int i, @org.jetbrains.annotations.NotNull java.lang.String... s) { /* compiled code */ } + + public C() { /* compiled code */ } +} diff --git a/compiler/testData/asJava/lightClasses/VarArgs.kt b/compiler/testData/asJava/lightClasses/VarArgs.kt new file mode 100644 index 00000000000..1169c96b4e0 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/VarArgs.kt @@ -0,0 +1,12 @@ +// C + +class C { + + fun f(vararg i: Int) { + + } + + fun p(i: Int, vararg s: String) { + + } +} diff --git a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index aa72ea21234..490d2d26cc0 100644 --- a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -84,6 +84,12 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT doTest(fileName); } + @TestMetadata("VarArgs.kt") + public void testVarArgs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/VarArgs.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/compilationErrors") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt index 5d449d5000e..5d1a61de3d4 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt @@ -225,13 +225,14 @@ object LightClassLazinessChecker { val name: String, val modifiers: List, val isConstructor: Boolean, - val parameterCount: Int + val parameterCount: Int, + val isVarargs: Boolean ) private fun methodInfo(method: PsiMethod) = with(method) { MethodInfo( name, PsiModifier.MODIFIERS.asList().filter { modifierList.hasModifierProperty(it) }, - isConstructor, method.parameterList.parametersCount + isConstructor, method.parameterList.parametersCount, isVarArgs ) } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java index f292a6b1128..2ec633a111d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java @@ -84,6 +84,12 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight doTest(fileName); } + @TestMetadata("VarArgs.kt") + public void testVarArgs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/VarArgs.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/delegation") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 1834506c119..67c1e7061b8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -84,6 +84,12 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { doTest(fileName); } + @TestMetadata("VarArgs.kt") + public void testVarArgs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/VarArgs.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/compilationErrors") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)