From 0ac990e1a0e2bfe4e7bf0cba1afbb0e06c95d0c5 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 17 Jul 2015 15:22:46 +0300 Subject: [PATCH] More tests for smart casts --- .../extensions/SyntheticExtensionsSmartCast.kt | 10 ++++++++++ .../extensions/SyntheticExtensionsSmartCast2.kt | 10 ++++++++++ .../test/JSBasicCompletionTestGenerated.java | 12 ++++++++++++ .../test/JvmBasicCompletionTestGenerated.java | 12 ++++++++++++ .../intentions/usePropertyAccessSyntax/smartCast.kt | 8 ++++++++ .../usePropertyAccessSyntax/smartCast.kt.after | 8 ++++++++ .../idea/intentions/IntentionTestGenerated.java | 6 ++++++ 7 files changed, 66 insertions(+) create mode 100644 idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt create mode 100644 idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt create mode 100644 idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt create mode 100644 idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt.after diff --git a/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt b/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt new file mode 100644 index 00000000000..f45fcd3870f --- /dev/null +++ b/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt @@ -0,0 +1,10 @@ +import java.io.File + +fun foo(o: Any) { + if (o is File) { + o. + } +} + +// EXIST_JAVA_ONLY: { lookupString: "absolutePath", itemText: "absolutePath", tailText: " (from getAbsolutePath())", typeText: "String!" } +// ABSENT: getAbsolutePath diff --git a/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt b/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt new file mode 100644 index 00000000000..807fe0eb505 --- /dev/null +++ b/idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt @@ -0,0 +1,10 @@ +import java.io.File + +fun Any.foo() { + if (this is File) { + + } +} + +// EXIST_JAVA_ONLY: { lookupString: "absolutePath", itemText: "absolutePath", tailText: " (from getAbsolutePath())", typeText: "String!" } +// ABSENT: getAbsolutePath diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java index 4873ed301ac..c87ef238e8c 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java @@ -1251,6 +1251,18 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes doTest(fileName); } + @TestMetadata("SyntheticExtensionsSmartCast.kt") + public void testSyntheticExtensionsSmartCast() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt"); + doTest(fileName); + } + + @TestMetadata("SyntheticExtensionsSmartCast2.kt") + public void testSyntheticExtensionsSmartCast2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt"); + doTest(fileName); + } + @TestMetadata("WrongExplicitReceiver.kt") public void testWrongExplicitReceiver() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/WrongExplicitReceiver.kt"); diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java index 2d1a2a7d9af..747bcd68b61 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java @@ -1251,6 +1251,18 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT doTest(fileName); } + @TestMetadata("SyntheticExtensionsSmartCast.kt") + public void testSyntheticExtensionsSmartCast() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast.kt"); + doTest(fileName); + } + + @TestMetadata("SyntheticExtensionsSmartCast2.kt") + public void testSyntheticExtensionsSmartCast2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/SyntheticExtensionsSmartCast2.kt"); + doTest(fileName); + } + @TestMetadata("WrongExplicitReceiver.kt") public void testWrongExplicitReceiver() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/extensions/WrongExplicitReceiver.kt"); diff --git a/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt b/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt new file mode 100644 index 00000000000..e30d98f8d03 --- /dev/null +++ b/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt @@ -0,0 +1,8 @@ +// WITH_RUNTIME +import java.io.File + +fun foo(o: Any) { + if (o is File) { + o.getAbsolutePath() + } +} \ No newline at end of file diff --git a/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt.after b/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt.after new file mode 100644 index 00000000000..a69bc4b844c --- /dev/null +++ b/idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt.after @@ -0,0 +1,8 @@ +// WITH_RUNTIME +import java.io.File + +fun foo(o: Any) { + if (o is File) { + o.absolutePath + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 05e05dc3277..f215c2d4b1e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -7463,6 +7463,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { doTest(fileName); } + @TestMetadata("smartCast.kt") + public void testSmartCast() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/usePropertyAccessSyntax/smartCast.kt"); + doTest(fileName); + } + @TestMetadata("superCall.kt") public void testSuperCall() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/usePropertyAccessSyntax/superCall.kt");