From 722624f0a4994471c091e9403aae8cf06e4b4a65 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 25 Nov 2014 01:30:44 +0300 Subject: [PATCH] Add test about platform static checks in ide --- .../diagnostics/DefaultErrorMessagesJvm.java | 4 +- .../checker/PlatformStaticUsagesRuntime.kt | 57 +++++++++++++++++++ .../checkers/JetPsiCheckerTestGenerated.java | 6 ++ 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 idea/testData/checker/PlatformStaticUsagesRuntime.kt diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java index 81e24b19fbc..1f6106425b1 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java @@ -44,8 +44,8 @@ public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension { static { MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: {0}", CONFLICTING_JVM_DECLARATIONS_DATA); MAP.put(ErrorsJvm.ACCIDENTAL_OVERRIDE, "Accidental override: {0}", CONFLICTING_JVM_DECLARATIONS_DATA); - MAP.put(ErrorsJvm.PLATFORM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and class objects of classes can be annotated with ''platformStatic''"); - MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override cannot be ''platformStatic'' in object"); + MAP.put(ErrorsJvm.PLATFORM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and class objects of classes can be annotated with 'platformStatic'"); + MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override cannot be 'platformStatic' in object"); MAP.put(ErrorsJvm.PLATFORM_STATIC_ILLEGAL_USAGE, "This declaration does not support ''platformStatic''", DescriptorRenderer.SHORT_NAMES_IN_TYPES); } diff --git a/idea/testData/checker/PlatformStaticUsagesRuntime.kt b/idea/testData/checker/PlatformStaticUsagesRuntime.kt new file mode 100644 index 00000000000..77c81fea26e --- /dev/null +++ b/idea/testData/checker/PlatformStaticUsagesRuntime.kt @@ -0,0 +1,57 @@ +import kotlin.platform.platformStatic + +platformStatic +class A { + platformStatic + class object { + platformStatic fun a1() { + + } + } + + platformStatic + object A { + platformStatic fun a2() { + + } + } + + fun test() { + val s = object { + platformStatic fun a3() { + + } + } + } + + platformStatic fun a4() { + + } +} + +platformStatic +trait B { + class object { + platformStatic fun a1() { + + } + } + + object A { + platformStatic fun a2() { + + } + } + + fun test() { + val s = object { + platformStatic fun a3() { + + } + } + } + + platformStatic fun a4() { + + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTestGenerated.java b/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTestGenerated.java index 38c7edb0aba..3e5da8d357f 100644 --- a/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTestGenerated.java @@ -225,6 +225,12 @@ public class JetPsiCheckerTestGenerated extends AbstractJetPsiCheckerTest { doTest(fileName); } + @TestMetadata("PlatformStaticUsagesRuntime.kt") + public void testPlatformStaticUsagesRuntime() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/PlatformStaticUsagesRuntime.kt"); + doTest(fileName); + } + @TestMetadata("PrimaryConstructors.kt") public void testPrimaryConstructors() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/PrimaryConstructors.kt");