diff --git a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt index 902ea2148fa..40e4662866c 100644 --- a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt +++ b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt @@ -96,10 +96,9 @@ class CodeBuilder(private val topElement: PsiElement?) { val prefixElements = ArrayList(1) val postfixElements = ArrayList(1) for ((prototype, inheritance) in element.prototypes!!) { - if (prototype is LightElement) continue assert(prototype !is PsiComment) assert(prototype !is PsiWhiteSpace) - assert(topElement.isAncestor(prototype)) + if (!topElement.isAncestor(prototype)) continue prefixElements.collectPrefixElements(prototype, inheritance, notInsideElements) postfixElements.collectPostfixElements(prototype, inheritance, notInsideElements) } diff --git a/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java b/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java index 3b10a1a121e..d1c94ed60a3 100644 --- a/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java +++ b/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java @@ -3148,6 +3148,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv doTest("j2k/tests/testData/ast/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.java"); } + @TestMetadata("typeFromOtherFile.java") + public void testTypeFromOtherFile() throws Exception { + doTest("j2k/tests/testData/ast/typeParameters/typeFromOtherFile.java"); + } + @TestMetadata("where.java") public void testWhere() throws Exception { doTest("j2k/tests/testData/ast/typeParameters/where.java"); diff --git a/j2k/tests/testData/JavaApi.java b/j2k/tests/testData/JavaApi.java index dfea9cb497f..5f62153ef3f 100644 --- a/j2k/tests/testData/JavaApi.java +++ b/j2k/tests/testData/JavaApi.java @@ -1,9 +1,7 @@ package javaApi; import org.jetbrains.annotations.Nullable; - -import java.lang.Override; -import java.lang.String; +import java.util.Set; public @interface Anon1 { String[] value(); @@ -60,3 +58,7 @@ public class Derived extends Base { public class WithVarargConstructor { public WithVarargConstructor(int p, Object... objects) { } } + +class T { + public Set set; +} \ No newline at end of file diff --git a/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.java b/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.java new file mode 100644 index 00000000000..1b5474b3ce8 --- /dev/null +++ b/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.java @@ -0,0 +1,8 @@ +import java.util.*; +import javaApi.T; + +class A { + public Object foo(T t) { + return Collections.nCopies(1, t.set); + } +} \ No newline at end of file diff --git a/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.kt b/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.kt new file mode 100644 index 00000000000..3d2734b1e1e --- /dev/null +++ b/j2k/tests/testData/ast/typeParameters/typeFromOtherFile.kt @@ -0,0 +1,9 @@ +import java.util.* +import javaApi.T +import kotlin.Set + +class A { + public fun foo(t: T): Any { + return Collections.nCopies>(1, t.set) + } +} \ No newline at end of file