From a71e0625049c7d54791c7538aa02d98f73ead548 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Fri, 17 Jan 2014 16:38:16 +0400 Subject: [PATCH] Insert proper default value when overriding property of type float, double, char --- .../plugin/codeInsight/CodeInsightUtils.java | 13 +++++++++--- .../overridePrimitiveProperty.kt | 13 ++++++++++++ .../overridePrimitiveProperty.kt.after | 21 +++++++++++++++++++ .../defaultValue/primitiveNumbers.kt.after | 8 +++---- .../codeInsight/OverrideImplementTest.java | 4 ++++ 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt create mode 100644 idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt.after diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/CodeInsightUtils.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/CodeInsightUtils.java index f735755d1eb..c90e6d225ce 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/CodeInsightUtils.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/CodeInsightUtils.java @@ -146,11 +146,18 @@ public class CodeInsightUtils { return "null"; } else if (type.equals(builtIns.getIntType()) || type.equals(builtIns.getLongType()) || - type.equals(builtIns.getShortType()) || type.equals(builtIns.getByteType()) || - type.equals(builtIns.getFloatType()) || type.equals(builtIns.getDoubleType()) || - type.equals(builtIns.getCharType())) { + type.equals(builtIns.getShortType()) || type.equals(builtIns.getByteType())) { return "0"; } + else if (type.equals(builtIns.getFloatType())) { + return "0.0f"; + } + else if (type.equals(builtIns.getDoubleType())) { + return "0.0"; + } + else if (type.equals(builtIns.getCharType())) { + return "'\\u0000'"; + } else if (type.equals(builtIns.getBooleanType())) { return "false"; } diff --git a/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt b/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt new file mode 100644 index 00000000000..20dabe4d3ed --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt @@ -0,0 +1,13 @@ +trait T { + val a1: Byte + val a2: Short + val a3: Int + val a4: Long + val a5: Float + val a6: Double + val a7: Char + val a8: Boolean +} + +class C : T { +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt.after b/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt.after new file mode 100644 index 00000000000..773139e5ecb --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/overridePrimitiveProperty.kt.after @@ -0,0 +1,21 @@ +trait T { + val a1: Byte + val a2: Short + val a3: Int + val a4: Long + val a5: Float + val a6: Double + val a7: Char + val a8: Boolean +} + +class C : T { + override val a1: Byte = 0 + override val a2: Short = 0 + override val a3: Int = 0 + override val a4: Long = 0 + override val a5: Float = 0.0f + override val a6: Double = 0.0 + override val a7: Char = '\u0000' + override val a8: Boolean = false +} \ No newline at end of file diff --git a/idea/testData/codeInsight/surroundWith/if/moveDeclarationsOut/var/defaultValue/primitiveNumbers.kt.after b/idea/testData/codeInsight/surroundWith/if/moveDeclarationsOut/var/defaultValue/primitiveNumbers.kt.after index 15a12edf8d4..30408915140 100644 --- a/idea/testData/codeInsight/surroundWith/if/moveDeclarationsOut/var/defaultValue/primitiveNumbers.kt.after +++ b/idea/testData/codeInsight/surroundWith/if/moveDeclarationsOut/var/defaultValue/primitiveNumbers.kt.after @@ -1,12 +1,12 @@ fun foo() { var a: Int = 0 - var b: Char = 0 + var b: Char = '\u0000' var c: Byte = 0 var d: Long = 0 var e: Short = 0 - var f: Double = 0 - var g: Float = 0 - if () { + var f: Double = 0.0 + var g: Float = 0.0f + if () { a = 1 b = 1 c = 1 diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java index 14074e40017..2db30a54ced 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java @@ -94,6 +94,10 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest { doOverrideFileTest(); } + public void testOverridePrimitiveProperty() { + doMultiImplementFileTest(); + } + public void testOverrideGenericFunction() { doOverrideFileTest(); }