KT-6044 J2K: Convert numeric float literals to 0.2f instead of 0.2.toFloat() + more fixes related to literals and type transformations

#KT-6044 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-03-27 17:43:30 +03:00
parent 5454f7053f
commit 39f94d7d45
22 changed files with 291 additions and 135 deletions
@@ -1,4 +1,4 @@
val a = 0
val b = 0
val c = 0
val ds = doubleArray(a.toDouble(), b.toDouble(), c.toDouble())
val a = 0.0
val b = 0.0
val c = 0.0
val ds = doubleArray(a, b, c)
@@ -1 +1 @@
val a = floatArray(1.0, 2.0, 3.0)
val a = floatArray(1f, 2f, 3.0f)
@@ -1,2 +1,2 @@
//statement
java.lang.Double[] a = new java.lang.Double[]{1, 2, 3};
java.lang.Double[] a = new java.lang.Double[]{1.0, 2.0, 3.0};
@@ -1,2 +1,2 @@
//statement
java.lang.Float[] a = new java.lang.Float[]{1, 2, 3};
java.lang.Float[] a = new java.lang.Float[]{1.0f, 2f, 3f};
@@ -1 +1 @@
val a = array<Float>(1.0, 2.0, 3.0)
val a = array(1.0f, 2f, 3f)
@@ -3,7 +3,7 @@ import java.util.ArrayList
class Boxing {
fun test() {
var i: Int? = 0
val n = 0.0.toFloat()
val n = 0.0f
i = 1
var j = i!!
val k = i!! + 2
@@ -1,9 +1,8 @@
// ERROR: An integer literal does not conform to the expected type kotlin.Double
class A {
deprecated("")
volatile var field1 = 0
transient var field2 = 1
strictfp var field3: Double = 2
strictfp var field3 = 2.0
}
+1 -1
View File
@@ -11,6 +11,6 @@ public class Language(protected var code: String) : Serializable {
companion object {
public var ENGLISH: Language = Language("en")
public var SWEDISH: Language = Language("sv")
private val serialVersionUID = -2442762969929206780
private val serialVersionUID = -2442762969929206780L
}
}
@@ -0,0 +1,21 @@
class A {
private double d1 = 1;
private double d2 = 1.0;
private double d3 = 1.0f;
private double d4 = 1.0d;
private double d5 = 1.0D;
private double d6 = 1.0F;
private double d7 = Math.sqrt(2) - 1
void foo1(double d){}
void foo2(Double d){}
void bar() {
foo1(1);
foo1(1f);
foo1(1.0);
foo2(1.0);
d1 = 1.0
d2 = 1
}
}
@@ -0,0 +1,24 @@
class A {
private var d1 = 1.0
private var d2 = 1.0
private val d3 = 1.0
private val d4 = 1.0
private val d5 = 1.0
private val d6 = 1.0
private val d7 = Math.sqrt(2.0) - 1
fun foo1(d: Double) {
}
fun foo2(d: Double?) {
}
fun bar() {
foo1(1.0)
foo1(1.0)
foo1(1.0)
foo2(1.0)
d1 = 1.0
d2 = 1.0
}
}
@@ -1,21 +1,21 @@
class Test {
fun test() {
val l1 = 10
val l1 = 10L
val d1 = 10.0
val f1 = 10.0.toFloat()
val f1 = 10.0f
val l2 = 10
val l2 = 10L
val d2 = 10.0
val f2 = 10.0.toFloat()
val f2 = 10.0f
}
fun testBoxed() {
val l1 = 10
val l1 = 10L
val d1 = 10.0
val f1 = 10.0.toFloat()
val f1 = 10.0f
val l2 = 10
val l2 = 10L
val d2 = 10.0
val f2 = 10.0.toFloat()
val f2 = 10.0f
}
}
@@ -0,0 +1,24 @@
class A {
private float f1 = 1.0f;
private float f2 = 1.0F;
private float f3 = 1f;
private float f4 = 1;
private float f5 = 1F;
private float f6 = -1;
private float f7 = -1F;
private float f8 = +1;
void foo1(float f){}
void foo2(Float f){}
void bar() {
foo1(1);
foo2(1f);
foo1(1f);
foo1(1L);
foo1(-1);
foo1(-1L);
f1 = 1
f4 = 1.0f
}
}
@@ -0,0 +1,27 @@
class A {
private var f1 = 1.0f
private val f2 = 1.0f
private val f3 = 1f
private var f4 = 1f
private val f5 = 1f
private val f6 = -1f
private val f7 = -1f
private val f8 = +1f
fun foo1(f: Float) {
}
fun foo2(f: Float?) {
}
fun bar() {
foo1(1f)
foo2(1f)
foo1(1f)
foo1(1f)
foo1(-1f)
foo1(-1f)
f1 = 1f
f4 = 1.0f
}
}
@@ -0,0 +1,23 @@
class A {
private long l1 = 1L;
private long l2 = 1;
private long l3 = 1l;
private long l4 = -1;
private long l5 = 123456789101112;
private long l6 = -123456789101112;
private long l7 = +1;
private long l8 = +1L;
void foo1(long l){}
void foo2(Long l){}
void bar() {
foo1(1);
foo1(1L);
foo2(1L);
foo1(-1);
l1 = 10
l2 = 10L
l4 = 10
}
}
@@ -0,0 +1,26 @@
class A {
private var l1 = 1L
private var l2: Long = 1
private val l3 = 1L
private var l4: Long = -1
private val l5 = 123456789101112
private val l6 = -123456789101112
private val l7 = +1
private val l8 = +1L
fun foo1(l: Long) {
}
fun foo2(l: Long?) {
}
fun bar() {
foo1(1)
foo1(1L)
foo2(1L)
foo1(-1)
l1 = 10
l2 = 10L
l4 = 10
}
}