From 1fb01dcfbb4a8c2282c3658ffc43ab2bb979061f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 28 Sep 2015 22:46:48 +0300 Subject: [PATCH] Minor correction --- .../jetbrains/kotlin/j2k/propertyDetection.kt | 4 ++-- .../detectProperties/PropertyType.java | 24 +++++++++++++++++++ .../detectProperties/PropertyType.kt | 24 +++++++++++++++++++ ...otlinConverterForWebDemoTestGenerated.java | 6 +++++ ...otlinConverterSingleFileTestGenerated.java | 6 +++++ 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 j2k/testData/fileOrElement/detectProperties/PropertyType.java create mode 100644 j2k/testData/fileOrElement/detectProperties/PropertyType.kt diff --git a/j2k/src/org/jetbrains/kotlin/j2k/propertyDetection.kt b/j2k/src/org/jetbrains/kotlin/j2k/propertyDetection.kt index 77316d45ad2..af502047abe 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/propertyDetection.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/propertyDetection.kt @@ -81,7 +81,7 @@ class PropertyInfo( class PropertyDetectionCache(private val converter: Converter) { private val cache = HashMap>() - fun get(psiClass: PsiClass): Map { + operator fun get(psiClass: PsiClass): Map { cache[psiClass]?.let { return it } assert(converter.inConversionScope(psiClass)) @@ -149,7 +149,7 @@ private class PropertyDetector( else field != null && field.isVar(converter.referenceSearcher) - val type = field?.type ?: getterInfo?.method?.returnType ?: setterInfo!!.method.parameterList.parameters.single()?.type!! + val type = getterInfo?.method?.returnType ?: setterInfo!!.method.parameterList.parameters.single()?.type!! val isOverride = getterInfo?.superProperty != null || setterInfo?.superProperty != null diff --git a/j2k/testData/fileOrElement/detectProperties/PropertyType.java b/j2k/testData/fileOrElement/detectProperties/PropertyType.java new file mode 100644 index 00000000000..9b15890ac58 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/PropertyType.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; +import java.util.List; + +class A { + private ArrayList list1 = new ArrayList(); + private List list2 = new ArrayList(); + private List myList3 = new ArrayList(); + + public List getList1() { + return list1; + } + public List getList2() { + return list2; + } + public List getList3() { + return myList3; + } + + void foo() { + list1.add("a"); + list2.add("a"); + myList3.add("a"); + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/PropertyType.kt b/j2k/testData/fileOrElement/detectProperties/PropertyType.kt new file mode 100644 index 00000000000..ec85d7c4561 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/PropertyType.kt @@ -0,0 +1,24 @@ +import java.util.ArrayList + +internal class A { + private val list1 = ArrayList() + private val list2 = ArrayList() + private val myList3 = ArrayList() + + fun getList1(): List { + return list1 + } + + fun getList2(): List { + return list2 + } + + val list3: List + get() = myList3 + + fun foo() { + list1.add("a") + list2.add("a") + myList3.add("a") + } +} \ No newline at end of file diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java index 147b299b98c..1f381aa9392 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java @@ -1549,6 +1549,12 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo doTest(fileName); } + @TestMetadata("PropertyType.java") + public void testPropertyType() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/PropertyType.java"); + doTest(fileName); + } + @TestMetadata("SetterTypeNotMatch.java") public void testSetterTypeNotMatch() throws Exception { String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/SetterTypeNotMatch.java"); diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java index 22fad84916f..78333dc5506 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java @@ -1549,6 +1549,12 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo doTest(fileName); } + @TestMetadata("PropertyType.java") + public void testPropertyType() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/PropertyType.java"); + doTest(fileName); + } + @TestMetadata("SetterTypeNotMatch.java") public void testSetterTypeNotMatch() throws Exception { String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/SetterTypeNotMatch.java");