fix java.lang.Number type mapping to jet.Number (KT-2376)

This commit is contained in:
Alexander Udalov
2012-07-11 16:32:32 +04:00
parent 2315412c45
commit 2d6b8abbe1
7 changed files with 16 additions and 4 deletions
@@ -1051,7 +1051,8 @@ public class JetTypeMapper {
return JvmPrimitiveType.getByWrapperClass(className) != null return JvmPrimitiveType.getByWrapperClass(className) != null
|| className.getFqName().getFqName().equals("java.lang.String") || className.getFqName().getFqName().equals("java.lang.String")
|| className.getFqName().getFqName().equals("java.lang.CharSequence") || className.getFqName().getFqName().equals("java.lang.CharSequence")
|| className.getFqName().getFqName().equals("java.lang.Object"); || className.getFqName().getFqName().equals("java.lang.Object")
|| className.getFqName().getFqName().equals("java.lang.Number");
} }
public boolean isGenericsArray(JetType type) { public boolean isGenericsArray(JetType type) {
@@ -3,7 +3,7 @@ package test
import java.util.* import java.util.*
public open class WrongTypeVariance : Object() { public open class WrongTypeVariance : Object() {
public open fun copy(p0 : List<out java.lang.Number?>?, p1 : List<in java.lang.Number?>?) : List<java.lang.Number?>? { public open fun copy(p0 : List<out jet.Number?>?, p1 : List<in jet.Number?>?) : List<jet.Number?>? {
throw UnsupportedOperationException() throw UnsupportedOperationException()
} }
} }
@@ -2,5 +2,5 @@ namespace test
public open class test.WrongTypeVariance : java.lang.Object { public open class test.WrongTypeVariance : java.lang.Object {
public final /*constructor*/ fun <init>(): test.WrongTypeVariance public final /*constructor*/ fun <init>(): test.WrongTypeVariance
public open fun copy(/*0*/ p0: java.util.List<out java.lang.Number?>?, /*1*/ p1: java.util.List<in java.lang.Number?>?): java.util.List<java.lang.Number?>? public open fun copy(/*0*/ p0: java.util.List<out jet.Number?>?, /*1*/ p1: java.util.List<in jet.Number?>?): java.util.List<jet.Number?>?
} }
@@ -0,0 +1,3 @@
package test
fun number(): java.lang.Number = throw Exception()
@@ -0,0 +1,3 @@
namespace test
internal final fun number(): java.lang.Number
@@ -701,6 +701,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTestSinglePackage("compiler/testData/readKotlinBinaryClass/type/jlIntegerQ.kt"); doTestSinglePackage("compiler/testData/readKotlinBinaryClass/type/jlIntegerQ.kt");
} }
@TestMetadata("jlNumber.kt")
public void testJlNumber() throws Exception {
doTestSinglePackage("compiler/testData/readKotlinBinaryClass/type/jlNumber.kt");
}
@TestMetadata("jlObject.kt") @TestMetadata("jlObject.kt")
public void testJlObject() throws Exception { public void testJlObject() throws Exception {
doTestSinglePackage("compiler/testData/readKotlinBinaryClass/type/jlObject.kt"); doTestSinglePackage("compiler/testData/readKotlinBinaryClass/type/jlObject.kt");
@@ -96,7 +96,7 @@ public class JetSignatureReader {
pos = end + 1; pos = end + 1;
c = signature.charAt(pos); c = signature.charAt(pos);
if (c == 'L' || c == '[' || c == 'T' || c == '?') { if (c == 'L' || c == 'M' || c == '[' || c == 'T' || c == '?') {
pos = parseType(signature, pos, parameterVisitor.visitClassBound()); pos = parseType(signature, pos, parameterVisitor.visitClassBound());
} }