From 128c9389652afa21c29ba905d2bd092ea1a3e680 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 14 Nov 2014 18:02:04 +0300 Subject: [PATCH] Make Array.size() a function instead of a property Also add a deprecated extension property to help migration. This is done to unify getting size of arrays and collections --- .../codegen/intrinsics/IntrinsicMethods.java | 4 +- compiler/testData/builtin-classes.txt | 27 +- .../testData/codegen/box/arrays/kt2997.kt | 18 +- compiler/testData/codegen/box/arrays/kt503.kt | 5 +- compiler/testData/codegen/box/arrays/kt779.kt | 2 +- .../testData/codegen/box/classes/kt1018.kt | 2 +- .../box/controlStructures/quicksort.kt | 4 +- .../codegen/box/enum/classObjectInEnum.kt | 2 +- .../box/enum/emptyEnumValuesValueOf.kt | 2 +- .../testData/codegen/box/functions/kt3214.kt | 4 +- .../compareTo/extensionArray.kt | 2 +- .../codegen/box/primitiveTypes/kt935.kt | 2 +- .../codegen/box/primitiveTypes/kt945.kt | 4 +- .../box/strings/rawStringsWithManyQuotes.kt | 2 +- .../testData/codegen/box/traits/stdlib.kt | 8 +- compiler/testData/codegen/box/vararg/kt581.kt | 5 +- .../box/vararg/varargsAndFunctionLiterals.kt | 6 +- .../annotations/annotatedEnumEntry.kt | 4 +- .../dataClasses/copy/paramWithoutProperty.kt | 4 +- .../platformTypes/assertionStackTrace.kt | 2 +- .../reflection/genericSignature/kt6106.kt | 2 +- .../codegen/boxWithStdlib/reified/spreads.kt | 2 +- .../codegen/boxWithStdlib/reified/varargs.kt | 4 +- .../tests/MergePackagesWithJava.kt | 2 +- .../tests/MergePackagesWithJava.lazy.log | 40 +-- .../incompleteCode/arrayBracketsRange.kt | 2 +- .../arrayBracketsRange.lazy.log | 4 +- .../constraintOnFunctionLiteral.kt | 4 +- .../constraintOnFunctionLiteral.lazy.log | 39 +-- .../tests/inference/listConstructor.kt | 2 +- .../tests/inference/listConstructor.lazy.log | 140 +++++----- .../tests/inference/regressions/kt2179.kt | 2 +- .../tests/inference/regressions/kt2324.kt | 2 +- .../inference/regressions/kt2324.lazy.log | 256 +++++++++--------- compiler/testData/diagnostics/tests/kt310.kt | 4 +- .../testData/diagnostics/tests/kt310.lazy.log | 24 +- compiler/testData/diagnostics/tests/kt310.txt | 4 +- .../diagnostics/tests/regressions/kt312.kt | 2 +- .../tests/regressions/kt312.lazy.log | 2 + .../diagnostics/tests/regressions/kt580.kt | 4 +- .../tests/regressions/kt580.lazy.log | 116 ++++---- .../ClassObjectAnnotatedWithItsClass.lazy.log | 12 +- .../array.lazy.log | 22 +- .../classLiteral.lazy.log | 4 +- .../simple.lazy.log | 8 +- .../vararg.lazy.log | 22 +- .../annotations/qualifiedCallValue.lazy.log | 12 +- .../abstractPropertyViaSubclasses.lazy.log | 28 +- .../property/extensionFromTopLevel.lazy.log | 64 ++--- .../property/memberFromTopLevel.lazy.log | 32 +-- .../property/topLevelFromTopLevel.lazy.log | 118 ++++---- .../pseudocodeMemoryOverhead.lazy.log | 92 +++---- .../reifiedNothingSubstitution.lazy.log | 18 +- .../jetbrains/jet/codegen/PackageGenTest.java | 4 +- core/builtins/native/kotlin/Array.kt | 4 +- core/builtins/native/kotlin/Arrays.kt | 32 ++- .../reflect/jvm/internal/foreignKClasses.kt | 2 +- .../src/kotlin/jvm/internal/ArrayIterator.kt | 2 +- .../src/kotlin/jvm/internal/ArrayIterators.kt | 16 +- .../jet/generators/builtins/arrayIterators.kt | 2 +- .../jet/generators/builtins/arrays.kt | 4 +- .../returnDeclaredParamNotDeclared.kt | 2 +- .../returnDeclaredParamNotDeclared.kt.after | 2 +- .../returnDeclaredParamNotDeclared.kt | 2 +- .../returnDeclaredParamNotDeclared.kt.after | 2 +- .../functions/factories/ArrayFIF.java | 2 +- libraries/stdlib/src/kotlin/Deprecated.kt | 28 ++ 67 files changed, 677 insertions(+), 625 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java index c28130aff49..e4c927752ba 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java @@ -142,7 +142,7 @@ public class IntrinsicMethods { declareArrayMethodsForPrimitive(jvmPrimitiveType); } - declareIntrinsicProperty("Array", "size", ARRAY_SIZE); + declareIntrinsicFunction("Array", "size", 0, ARRAY_SIZE); declareIntrinsicProperty("Array", "indices", ARRAY_INDICES); declareIntrinsicFunction("Array", "set", 2, ARRAY_SET); declareIntrinsicFunction("Array", "get", 1, ARRAY_GET); @@ -152,7 +152,7 @@ public class IntrinsicMethods { private void declareArrayMethodsForPrimitive(@NotNull JvmPrimitiveType jvmPrimitiveType) { String arrayTypeName = jvmPrimitiveType.getPrimitiveType().getArrayTypeName().asString(); - declareIntrinsicProperty(arrayTypeName, "size", ARRAY_SIZE); + declareIntrinsicFunction(arrayTypeName, "size", 0, ARRAY_SIZE); declareIntrinsicProperty(arrayTypeName, "indices", ARRAY_INDICES); declareIntrinsicFunction(arrayTypeName, "set", 2, ARRAY_SET); declareIntrinsicFunction(arrayTypeName, "get", 1, ARRAY_GET); diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index a515bc81535..ab8ffbc5111 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -17,12 +17,11 @@ public final class Array : kotlin.Cloneable { /*primary*/ public constructor Array(/*0*/ size: kotlin.Int, /*1*/ init: kotlin.Function1) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.Array public final fun get(/*0*/ index: kotlin.Int): T public final fun iterator(): kotlin.Iterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: T): kotlin.Unit + public final fun size(): kotlin.Int } public final class Boolean : kotlin.Comparable { @@ -38,12 +37,11 @@ public final class BooleanArray : kotlin.Cloneable { /*primary*/ public constructor BooleanArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.BooleanArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Boolean public final fun iterator(): kotlin.BooleanIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Boolean): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class BooleanIterator : kotlin.Iterator { @@ -121,12 +119,11 @@ public final class ByteArray : kotlin.Cloneable { /*primary*/ public constructor ByteArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.ByteArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Byte public final fun iterator(): kotlin.ByteIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Byte): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class ByteIterator : kotlin.Iterator { @@ -242,12 +239,11 @@ public final class CharArray : kotlin.Cloneable { /*primary*/ public constructor CharArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.CharArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Char public final fun iterator(): kotlin.CharIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Char): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class CharIterator : kotlin.Iterator { @@ -394,12 +390,11 @@ public final class DoubleArray : kotlin.Cloneable { /*primary*/ public constructor DoubleArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.DoubleArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Double public final fun iterator(): kotlin.DoubleIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Double): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class DoubleIterator : kotlin.Iterator { @@ -621,12 +616,11 @@ public final class FloatArray : kotlin.Cloneable { /*primary*/ public constructor FloatArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.FloatArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Float public final fun iterator(): kotlin.FloatIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Float): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class FloatIterator : kotlin.Iterator { @@ -926,12 +920,11 @@ public final class IntArray : kotlin.Cloneable { /*primary*/ public constructor IntArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.IntArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Int public final fun iterator(): kotlin.IntIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Int): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class IntIterator : kotlin.Iterator { @@ -1096,12 +1089,11 @@ public final class LongArray : kotlin.Cloneable { /*primary*/ public constructor LongArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.LongArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Long public final fun iterator(): kotlin.LongIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Long): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class LongIterator : kotlin.Iterator { @@ -1391,12 +1383,11 @@ public final class ShortArray : kotlin.Cloneable { /*primary*/ public constructor ShortArray(/*0*/ size: kotlin.Int) public final val indices: kotlin.IntRange public final fun (): kotlin.IntRange - public final val size: kotlin.Int - public final fun (): kotlin.Int public open override /*1*/ fun clone(): kotlin.ShortArray public final fun get(/*0*/ index: kotlin.Int): kotlin.Short public final fun iterator(): kotlin.ShortIterator public final fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Short): kotlin.Unit + public final fun size(): kotlin.Int } public abstract class ShortIterator : kotlin.Iterator { diff --git a/compiler/testData/codegen/box/arrays/kt2997.kt b/compiler/testData/codegen/box/arrays/kt2997.kt index 5d148563f76..4c31fa08153 100644 --- a/compiler/testData/codegen/box/arrays/kt2997.kt +++ b/compiler/testData/codegen/box/arrays/kt2997.kt @@ -6,55 +6,55 @@ fun foo(a: Any): Int { a.set(0, 1) a.iterator() a.indices - return a.size + return a.size() } if (a is ShortArray) { a.get(0) a.set(0, 1) a.iterator() a.indices - return a.size + return a.size() } if (a is ByteArray) { a.get(0) a.set(0, 1) a.iterator() a.indices - return a.size + return a.size() } if (a is FloatArray) { a.get(0) a.set(0, 1.toFloat()) a.iterator() a.indices - return a.size + return a.size() } if (a is DoubleArray) { a.get(0) a.set(0, 1.0) a.iterator() a.indices - return a.size + return a.size() } if (a is BooleanArray) { a.get(0) a.set(0, false) a.iterator() a.indices - return a.size + return a.size() } if (a is CharArray) { a.get(0) a.set(0, 'a') a.iterator() a.indices - return a.size + return a.size() } if (a is Array<*>) { - if (a.size > 0) a.get(0) + if (a.size() > 0) a.get(0) a.iterator() a.indices - return a.size + return a.size() } return 0 diff --git a/compiler/testData/codegen/box/arrays/kt503.kt b/compiler/testData/codegen/box/arrays/kt503.kt index 1dd71d3b6a9..07209d310b2 100644 --- a/compiler/testData/codegen/box/arrays/kt503.kt +++ b/compiler/testData/codegen/box/arrays/kt503.kt @@ -22,11 +22,8 @@ fun box() : String { catch (e : ArrayIndexOutOfBoundsException) { // No more tests to process } - System.out?.println(n) return if(n == 2) "OK" else "fail" } fun thirdElementIsThree(a : IntArray) = -// Problematic code does not compile -// a.size >= 3 & a[2] == 3 - a.size >= 3 && a[2] == 3 + a.size() >= 3 && a[2] == 3 diff --git a/compiler/testData/codegen/box/arrays/kt779.kt b/compiler/testData/codegen/box/arrays/kt779.kt index 4e3a8073c2f..29568a54456 100644 --- a/compiler/testData/codegen/box/arrays/kt779.kt +++ b/compiler/testData/codegen/box/arrays/kt779.kt @@ -1,3 +1,3 @@ -val Array.length : Int get() = this.size +val Array.length : Int get() = this.size() fun box() = if(Array(10, {1}).length == 10) "OK" else "fail" diff --git a/compiler/testData/codegen/box/classes/kt1018.kt b/compiler/testData/codegen/box/classes/kt1018.kt index a671fe4f9ac..110c1778bc3 100644 --- a/compiler/testData/codegen/box/classes/kt1018.kt +++ b/compiler/testData/codegen/box/classes/kt1018.kt @@ -1,7 +1,7 @@ public class StockMarketTableModel() { public fun getColumnCount() : Int { - return COLUMN_TITLES?.size!! + return COLUMN_TITLES?.size()!! } class object { diff --git a/compiler/testData/codegen/box/controlStructures/quicksort.kt b/compiler/testData/codegen/box/controlStructures/quicksort.kt index 381a8cf44bb..fb694664eee 100644 --- a/compiler/testData/codegen/box/controlStructures/quicksort.kt +++ b/compiler/testData/codegen/box/controlStructures/quicksort.kt @@ -4,7 +4,7 @@ fun IntArray.swap(i:Int, j:Int) { this[j] = temp } -fun IntArray.quicksort() = quicksort(0, size-1) +fun IntArray.quicksort() = quicksort(0, size()-1) fun IntArray.quicksort(L: Int, R:Int) { val m = this[(L + R) / 2] @@ -34,7 +34,7 @@ fun box() : String { a[2*i+1] = -2*i-1 } a.quicksort() - for(i in 0..a.size-2) { + for(i in 0..a.size()-2) { if (a[i] > a[i+1]) return "Fail $i: ${a[i]} > ${a[i+1]}" } return "OK" diff --git a/compiler/testData/codegen/box/enum/classObjectInEnum.kt b/compiler/testData/codegen/box/enum/classObjectInEnum.kt index 7ee1aa49b09..f4562e9e1d0 100644 --- a/compiler/testData/codegen/box/enum/classObjectInEnum.kt +++ b/compiler/testData/codegen/box/enum/classObjectInEnum.kt @@ -13,7 +13,7 @@ fun box(): String { if (Game.foo() != Game.ROCK) return "Fail 1" // TODO: fix initialization order and uncomment (KT-5761) // if (Game.bar != Game.PAPER) return "Fail 2: ${Game.bar}" - if (Game.values().size != 3) return "Fail 3" + if (Game.values().size() != 3) return "Fail 3" if (Game.valueOf("SCISSORS") != Game.SCISSORS) return "Fail 4" return "OK" } diff --git a/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt b/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt index 6cad0c98a04..83b12c9e691 100644 --- a/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt +++ b/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt @@ -1,7 +1,7 @@ enum class Empty fun box(): String { - if (Empty.values().size != 0) return "Fail: ${Empty.values()}" + if (Empty.values().size() != 0) return "Fail: ${Empty.values()}" try { val found = Empty.valueOf("nonExistentEntry") diff --git a/compiler/testData/codegen/box/functions/kt3214.kt b/compiler/testData/codegen/box/functions/kt3214.kt index b675ae4f3cd..df246c0dabb 100644 --- a/compiler/testData/codegen/box/functions/kt3214.kt +++ b/compiler/testData/codegen/box/functions/kt3214.kt @@ -1,9 +1,9 @@ class A { - fun get(vararg x: Int) = x.size + fun get(vararg x: Int) = x.size() } class B { - fun get(vararg x: Unit) = x.size + fun get(vararg x: Unit) = x.size() } fun test1(a: A): Int { diff --git a/compiler/testData/codegen/box/operatorConventions/compareTo/extensionArray.kt b/compiler/testData/codegen/box/operatorConventions/compareTo/extensionArray.kt index d25388d1dd4..f7e864581e1 100644 --- a/compiler/testData/codegen/box/operatorConventions/compareTo/extensionArray.kt +++ b/compiler/testData/codegen/box/operatorConventions/compareTo/extensionArray.kt @@ -7,7 +7,7 @@ fun checkLess(x: Array, y: Array) = when { else -> "OK" } -fun Array.compareTo(other: Array) = size - other.size +fun Array.compareTo(other: Array) = size() - other.size() fun box(): String { val a = Array(0, {0}) diff --git a/compiler/testData/codegen/box/primitiveTypes/kt935.kt b/compiler/testData/codegen/box/primitiveTypes/kt935.kt index 7ca6d8b4dc2..dd9a4fa4d26 100644 --- a/compiler/testData/codegen/box/primitiveTypes/kt935.kt +++ b/compiler/testData/codegen/box/primitiveTypes/kt935.kt @@ -27,4 +27,4 @@ fun bottlesOfBeer(count : Int) : String { fun print(message : String) { System.out?.print(message) } fun println(message : String) { System.out?.println(message) } fun StringBuilder.plusAssign(o : Any) { append(o) } -val Array.isEmpty : Boolean get() = size == 0 +val Array.isEmpty : Boolean get() = size() == 0 diff --git a/compiler/testData/codegen/box/primitiveTypes/kt945.kt b/compiler/testData/codegen/box/primitiveTypes/kt945.kt index c2c5a8617ae..3db6fcc7a68 100644 --- a/compiler/testData/codegen/box/primitiveTypes/kt945.kt +++ b/compiler/testData/codegen/box/primitiveTypes/kt945.kt @@ -1,8 +1,8 @@ fun box() : String { val data = Array>(3) { Array(4, {false}) } for(d in data) { - if(d.size != 4) return "fail" - System.out?.println(d) + if(d.size() != 4) return "fail" + for(b in d) if (b) return "fail" } return "OK" diff --git a/compiler/testData/codegen/box/strings/rawStringsWithManyQuotes.kt b/compiler/testData/codegen/box/strings/rawStringsWithManyQuotes.kt index 1fb97bd718e..13a33ee8b95 100644 --- a/compiler/testData/codegen/box/strings/rawStringsWithManyQuotes.kt +++ b/compiler/testData/codegen/box/strings/rawStringsWithManyQuotes.kt @@ -19,7 +19,7 @@ fun box() : String { P(""""" """"", "\"\" \"\"") ) - for (i in 0..data.size-1) { + for (i in 0..data.size()-1) { val p = data[i] if (p.actual != p.expected) return "Fail at #$i. actual='${p.actual}', expected='${p.expected}'" } diff --git a/compiler/testData/codegen/box/traits/stdlib.kt b/compiler/testData/codegen/box/traits/stdlib.kt index 8b31b4b1d1f..58b5bcbb584 100644 --- a/compiler/testData/codegen/box/traits/stdlib.kt +++ b/compiler/testData/codegen/box/traits/stdlib.kt @@ -39,7 +39,7 @@ class MutableArray(length: Int, init : (Int) -> T) : ReadOnlyArray, WriteO override fun set(index : Int, value : T) : Unit { array[index] = value } override val size : Int - get() = array.size + get() = array.size() } fun box() : String { @@ -47,10 +47,10 @@ fun box() : String { a [0] = 10 a.set(1, 2, 13) a [3] = 40 - System.out?.println(a.iterator()) - System.out?.println(a.iterator().hasNext()) + a.iterator() + a.iterator().hasNext() for(el in a) { - System.out?.println(el) + val fl = el } return "OK" } diff --git a/compiler/testData/codegen/box/vararg/kt581.kt b/compiler/testData/codegen/box/vararg/kt581.kt index 8773363c8cd..2124d3cb53c 100644 --- a/compiler/testData/codegen/box/vararg/kt581.kt +++ b/compiler/testData/codegen/box/vararg/kt581.kt @@ -4,12 +4,9 @@ import java.util.HashSet fun iarray(vararg a : Int) = a // BUG -fun IntArray.lastIndex() = size - 1 +fun IntArray.lastIndex() = size() - 1 fun box() : String { - // Problematic code does not compile -// val vals = iarray(789, 678, 567, 456, 345, 234, 123, 012) - val vals = iarray(789, 678, 567, 456, 345, 234, 123, 12) val diffs = HashSet() for (i in vals.indices) diff --git a/compiler/testData/codegen/box/vararg/varargsAndFunctionLiterals.kt b/compiler/testData/codegen/box/vararg/varargsAndFunctionLiterals.kt index 3c7dca68c44..d65aab45c5a 100644 --- a/compiler/testData/codegen/box/vararg/varargsAndFunctionLiterals.kt +++ b/compiler/testData/codegen/box/vararg/varargsAndFunctionLiterals.kt @@ -3,13 +3,13 @@ fun foo(a: Int, vararg b: Int, f: (IntArray) -> String): String { } fun box(): String { - val test1 = foo(1) {a -> "" + a.size} + val test1 = foo(1) {a -> "" + a.size()} if (test1 != "test1 0") return test1 - val test2 = foo(2, 2) {a -> "" + a.size} + val test2 = foo(2, 2) {a -> "" + a.size()} if (test2 != "test2 1") return test2 - val test3 = foo(3, 2, 3) {a -> "" + a.size} + val test3 = foo(3, 2, 3) {a -> "" + a.size()} if (test3 != "test3 2") return test3 return "OK" diff --git a/compiler/testData/codegen/boxWithStdlib/annotations/annotatedEnumEntry.kt b/compiler/testData/codegen/boxWithStdlib/annotations/annotatedEnumEntry.kt index ea9d270cda9..4d719d78957 100644 --- a/compiler/testData/codegen/boxWithStdlib/annotations/annotatedEnumEntry.kt +++ b/compiler/testData/codegen/boxWithStdlib/annotations/annotatedEnumEntry.kt @@ -22,11 +22,11 @@ fun box(): String { val e = javaClass() val e1 = e.getDeclaredField(E.E1.toString()).getAnnotations() - if (e1.size != 1) return "Fail E1 size: ${e1.toList()}" + if (e1.size() != 1) return "Fail E1 size: ${e1.toList()}" if (e1[0].annotationType() != javaClass()) return "Fail E1: ${e1.toList()}" val e2 = e.getDeclaredField(E.E2.toString()).getAnnotations() - if (e2.size != 1) return "Fail E2 size: ${e2.toList()}" + if (e2.size() != 1) return "Fail E2 size: ${e2.toList()}" if (e2[0].annotationType() != javaClass()) return "Fail E2: ${e2.toList()}" return (e2[0] as Second).value diff --git a/compiler/testData/codegen/boxWithStdlib/dataClasses/copy/paramWithoutProperty.kt b/compiler/testData/codegen/boxWithStdlib/dataClasses/copy/paramWithoutProperty.kt index 8ec9d29ab68..3ca0dc0ef32 100644 --- a/compiler/testData/codegen/boxWithStdlib/dataClasses/copy/paramWithoutProperty.kt +++ b/compiler/testData/codegen/boxWithStdlib/dataClasses/copy/paramWithoutProperty.kt @@ -4,12 +4,12 @@ fun box() : String { for (method in javaClass().getDeclaredMethods()) { if (method.getName() == "copy"){ val parameterTypes = method.getParameterTypes() - if (parameterTypes != null && parameterTypes.size == 2) { + if (parameterTypes != null && parameterTypes.size() == 2) { val copy = A(1, "a").copy(a = 2, b = "b") return "OK" } else { - return "Method copy has " + (if (parameterTypes == null) "0" else parameterTypes.size) + " parameters, expected 2" + return "Method copy has " + (if (parameterTypes == null) "0" else parameterTypes.size()) + " parameters, expected 2" } } } diff --git a/compiler/testData/codegen/boxWithStdlib/platformTypes/assertionStackTrace.kt b/compiler/testData/codegen/boxWithStdlib/platformTypes/assertionStackTrace.kt index 7a39a266480..a459b553fe7 100644 --- a/compiler/testData/codegen/boxWithStdlib/platformTypes/assertionStackTrace.kt +++ b/compiler/testData/codegen/boxWithStdlib/platformTypes/assertionStackTrace.kt @@ -9,7 +9,7 @@ fun box(): String { return "Fail: an exception should be thrown" } catch (e: IllegalStateException) { val st = (e as java.lang.Throwable).getStackTrace() - if (st.size < 5) { + if (st.size() < 5) { return "Fail: very small stack trace, should at least have current function and JUnit reflective calls: ${Arrays.toString(st)}" } val top = st[0] diff --git a/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt6106.kt b/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt6106.kt index 6bb8ce7dcc5..a128820ae8d 100644 --- a/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt6106.kt +++ b/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt6106.kt @@ -18,7 +18,7 @@ fun box(): String { val method = javaClass().getDeclaredMethod("a", javaClass()) val genericParameterTypes = method.getGenericParameterTypes() - if (genericParameterTypes.size != 1) return "Wrong number of generic parameters" + if (genericParameterTypes.size() != 1) return "Wrong number of generic parameters" if (genericParameterTypes[0].toString() != "T") return "Wrong parameter type ${genericParameterTypes[0].toString()}" diff --git a/compiler/testData/codegen/boxWithStdlib/reified/spreads.kt b/compiler/testData/codegen/boxWithStdlib/reified/spreads.kt index fc378e6bd56..2642bf941e2 100644 --- a/compiler/testData/codegen/boxWithStdlib/reified/spreads.kt +++ b/compiler/testData/codegen/boxWithStdlib/reified/spreads.kt @@ -1,6 +1,6 @@ import kotlin.test.assertEquals -fun foo(vararg a: T) = a.size +fun foo(vararg a: T) = a.size() inline fun bar(a: Array, block: () -> T): Array { assertEquals(4, foo(*a, block(), block())) diff --git a/compiler/testData/codegen/boxWithStdlib/reified/varargs.kt b/compiler/testData/codegen/boxWithStdlib/reified/varargs.kt index 9b72bdb26c5..ddbad0bcb1e 100644 --- a/compiler/testData/codegen/boxWithStdlib/reified/varargs.kt +++ b/compiler/testData/codegen/boxWithStdlib/reified/varargs.kt @@ -1,6 +1,6 @@ import kotlin.test.assertEquals -fun foo(vararg a: T) = a.size +fun foo(vararg a: T) = a.size() inline fun bar(block: () -> T): Array { assertEquals(2, foo(block(), block())) @@ -20,7 +20,7 @@ fun box(): String { assertEquals("234", b.map { it.toString() }.join("")) val c: Array = empty() - assertEquals(0, c.size) + assertEquals(0, c.size()) return "OK" } diff --git a/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt b/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt index 87165be4ea0..af548dc94a2 100644 --- a/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt +++ b/compiler/testData/diagnostics/tests/MergePackagesWithJava.kt @@ -5,4 +5,4 @@ package java val c : lang.Class<*>? = null -val Array?.length : Int get() = if (this != null) this.size else throw NullPointerException() \ No newline at end of file +val Array?.length : Int get() = if (this != null) this.size() else throw NullPointerException() diff --git a/compiler/testData/diagnostics/tests/MergePackagesWithJava.lazy.log b/compiler/testData/diagnostics/tests/MergePackagesWithJava.lazy.log index 2b32233fc00..f160cbcbe0d 100644 --- a/compiler/testData/diagnostics/tests/MergePackagesWithJava.lazy.log +++ b/compiler/testData/diagnostics/tests/MergePackagesWithJava.lazy.log @@ -106,30 +106,34 @@ LazyJavaPackageFragment@48['java'] { classes('NullPointerException': Name@71) = null // through LazyPackageFragmentScopeForJavaPackage@69 classes('equals': Name@72) = null // through LazyPackageFragmentScopeForJavaPackage@69 classes('lang': Name@73) = null // through LazyPackageFragmentScopeForJavaPackage@69 - deserializedPackageScope = Empty@74 // through LazyPackageFragmentScopeForJavaPackage@69 - functions('NullPointerException': Name@71) = EmptyList@75[empty] // through LazyPackageFragmentScopeForJavaPackage@69 - functions('equals': Name@72) = EmptyList@75[empty] // through LazyPackageFragmentScopeForJavaPackage@69 - functions('lang': Name@76) = EmptyList@75[empty] // through LazyPackageFragmentScopeForJavaPackage@69 - memberIndex = computeMemberIndex$1@77 // through LazyPackageFragmentScopeForJavaPackage@69 + classes('size': Name@74) = null // through LazyPackageFragmentScopeForJavaPackage@69 + deserializedPackageScope = Empty@75 // through LazyPackageFragmentScopeForJavaPackage@69 + functions('NullPointerException': Name@71) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@69 + functions('equals': Name@72) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@69 + functions('lang': Name@77) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@69 + functions('size': Name@74) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@69 + memberIndex = computeMemberIndex$1@78 // through LazyPackageFragmentScopeForJavaPackage@69 } LazyJavaPackageFragment@54['lang'] { - classes('Class': Name@78) = LazyJavaClassDescriptor@2['Class'] // through LazyPackageFragmentScopeForJavaPackage@79 - classes('NullPointerException': Name@71) = LazyJavaClassDescriptor@6['NullPointerException'] // through LazyPackageFragmentScopeForJavaPackage@79 - classes('equals': Name@72) = null // through LazyPackageFragmentScopeForJavaPackage@79 - classes('lang': Name@80) = null // through LazyPackageFragmentScopeForJavaPackage@79 - deserializedPackageScope = Empty@74 // through LazyPackageFragmentScopeForJavaPackage@79 - functions('NullPointerException': Name@71) = EmptyList@75[empty] // through LazyPackageFragmentScopeForJavaPackage@79 - functions('equals': Name@72) = EmptyList@75[empty] // through LazyPackageFragmentScopeForJavaPackage@79 - memberIndex = computeMemberIndex$1@81 // through LazyPackageFragmentScopeForJavaPackage@79 + classes('Class': Name@79) = LazyJavaClassDescriptor@2['Class'] // through LazyPackageFragmentScopeForJavaPackage@80 + classes('NullPointerException': Name@71) = LazyJavaClassDescriptor@6['NullPointerException'] // through LazyPackageFragmentScopeForJavaPackage@80 + classes('equals': Name@72) = null // through LazyPackageFragmentScopeForJavaPackage@80 + classes('lang': Name@81) = null // through LazyPackageFragmentScopeForJavaPackage@80 + classes('size': Name@74) = null // through LazyPackageFragmentScopeForJavaPackage@80 + deserializedPackageScope = Empty@75 // through LazyPackageFragmentScopeForJavaPackage@80 + functions('NullPointerException': Name@71) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@80 + functions('equals': Name@72) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@80 + functions('size': Name@74) = EmptyList@76[empty] // through LazyPackageFragmentScopeForJavaPackage@80 + memberIndex = computeMemberIndex$1@82 // through LazyPackageFragmentScopeForJavaPackage@80 } LazyJavaTypeParameterDescriptor@16['T'] { - typeConstructor = AbstractLazyTypeParameterDescriptor$1@82 - upperBounds = LinkedHashSet@83[1] { NullableType@84 } - upperBoundsAsType = NullableType@84 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@83 + upperBounds = LinkedHashSet@84[1] { NullableType@85 } + upperBoundsAsType = NullableType@85 } -LazyJavaTypeParameterResolver@85 { - resolve(JavaTypeParameterImpl@86['T']) = LazyJavaTypeParameterDescriptor@16['T'] +LazyJavaTypeParameterResolver@86 { + resolve(JavaTypeParameterImpl@87['T']) = LazyJavaTypeParameterDescriptor@16['T'] } diff --git a/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.kt b/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.kt index 363bd2d7842..5ec4070fce5 100644 --- a/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.kt +++ b/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.kt @@ -4,6 +4,6 @@ fun main(args : Array) { var ints : Array = arrayOfNulls(31) ints[0] = 4; ints[11] = 5; ints[2] =7 - for(i in 0..ints.size) + for(i in 0..ints.size()) ints[i } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.lazy.log b/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.lazy.log index bbe2b576196..bfbd43e0401 100644 --- a/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.lazy.log +++ b/compiler/testData/diagnostics/tests/incompleteCode/arrayBracketsRange.lazy.log @@ -35,6 +35,7 @@ LazyJavaPackageFragment@13['lang'] { classes('next': Name@34) = null // through LazyPackageFragmentScopeForJavaPackage@30 classes('rangeTo': Name@35) = null // through LazyPackageFragmentScopeForJavaPackage@30 classes('set': Name@36) = null // through LazyPackageFragmentScopeForJavaPackage@30 + classes('size': Name@37) = null // through LazyPackageFragmentScopeForJavaPackage@30 deserializedPackageScope = Empty@25 // through LazyPackageFragmentScopeForJavaPackage@30 functions('arrayOfNulls': Name@29) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 functions('get': Name@31) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 @@ -43,5 +44,6 @@ LazyJavaPackageFragment@13['lang'] { functions('next': Name@34) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 functions('rangeTo': Name@35) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 functions('set': Name@36) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 - memberIndex = computeMemberIndex$1@37 // through LazyPackageFragmentScopeForJavaPackage@30 + functions('size': Name@37) = EmptyList@27[empty] // through LazyPackageFragmentScopeForJavaPackage@30 + memberIndex = computeMemberIndex$1@38 // through LazyPackageFragmentScopeForJavaPackage@30 } diff --git a/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.kt b/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.kt index cb4aefda33a..29af4560871 100644 --- a/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.kt +++ b/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.kt @@ -2,9 +2,9 @@ package c import java.util.ArrayList -fun Array.toIntArray(): IntArray = this.mapTo(IntArray(size), {it}) +fun Array.toIntArray(): IntArray = this.mapTo(IntArray(size()), {it}) -fun Array.toArrayList(): ArrayList = this.mapTo(ArrayList(size), {it}) +fun Array.toArrayList(): ArrayList = this.mapTo(ArrayList(size()), {it}) public fun > Array.mapTo(result: C, transform : (T) -> R) : C = throw Exception("$result $transform") diff --git a/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.lazy.log b/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.lazy.log index ea53a4f58c0..66355d2eb2a 100644 --- a/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.lazy.log +++ b/compiler/testData/diagnostics/tests/inference/constraints/constraintOnFunctionLiteral.lazy.log @@ -134,45 +134,45 @@ LazyJavaClassifierType@86['E'] { LazyJavaClassifierType@89['E'] { arguments = ArrayList@90[empty] - classifier = JavaTypeParameterImpl@84['E'] + classifier = JavaTypeParameterImpl@81['E'] nullable = 'true': Boolean@65 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@85 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@78 } LazyJavaClassifierType@91['E'] { arguments = ArrayList@92[empty] - classifier = JavaTypeParameterImpl@88['E'] + classifier = JavaTypeParameterImpl@77['E'] nullable = 'true': Boolean@65 typeConstructor = AbstractLazyTypeParameterDescriptor$1@78 } LazyJavaClassifierType@93['E'] { arguments = ArrayList@94[empty] - classifier = JavaTypeParameterImpl@81['E'] + classifier = JavaTypeParameterImpl@73['E'] nullable = 'true': Boolean@65 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@78 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@74 } LazyJavaClassifierType@95['E'] { arguments = ArrayList@96[empty] - classifier = JavaTypeParameterImpl@77['E'] + classifier = JavaTypeParameterImpl@88['E'] nullable = 'true': Boolean@65 typeConstructor = AbstractLazyTypeParameterDescriptor$1@78 } LazyJavaClassifierType@97['E'] { arguments = ArrayList@98[empty] - classifier = JavaTypeParameterImpl@73['E'] + classifier = JavaTypeParameterImpl@84['E'] nullable = 'true': Boolean@65 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@74 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@85 } -LazyJavaClassifierType@37['List'] { +LazyJavaClassifierType@32['List'] { classifier = JavaClassImpl@99['List'] typeConstructor = DeserializedClassTypeConstructor@100 } -LazyJavaClassifierType@32['List'] { +LazyJavaClassifierType@37['List'] { classifier = JavaClassImpl@101['List'] typeConstructor = DeserializedClassTypeConstructor@100 } @@ -232,14 +232,14 @@ LazyJavaClassifierType@122['String'] { LazyJavaClassifierType@124['String'] { arguments = ArrayList@125[empty] - classifier = JavaClassImpl@118['String'] + classifier = JavaClassImpl@114['String'] nullable = 'true': Boolean@65 typeConstructor = DeserializedClassTypeConstructor@115 } LazyJavaClassifierType@126['String'] { arguments = ArrayList@127[empty] - classifier = JavaClassImpl@114['String'] + classifier = JavaClassImpl@118['String'] nullable = 'true': Boolean@65 typeConstructor = DeserializedClassTypeConstructor@115 } @@ -267,14 +267,14 @@ LazyJavaClassifierType@135['Throwable'] { LazyJavaClassifierType@138['Throwable'] { arguments = ArrayList@139[empty] - classifier = JavaClassImpl@130['Throwable'] + classifier = JavaClassImpl@134['Throwable'] nullable = 'true': Boolean@65 typeConstructor = DeserializedClassTypeConstructor@131 } LazyJavaClassifierType@140['Throwable'] { arguments = ArrayList@141[empty] - classifier = JavaClassImpl@134['Throwable'] + classifier = JavaClassImpl@130['Throwable'] nullable = 'true': Boolean@65 typeConstructor = DeserializedClassTypeConstructor@131 } @@ -363,6 +363,7 @@ LazyJavaPackageFragment@171['lang'] { functions('Exception': Name@206) = EmptyList@201[empty] // through LazyPackageFragmentScopeForJavaPackage@205 functions('IntArray': Name@207) = EmptyList@201[empty] // through LazyPackageFragmentScopeForJavaPackage@205 functions('mapTo': Name@208) = EmptyList@201[empty] // through LazyPackageFragmentScopeForJavaPackage@205 + functions('size': Name@209) = EmptyList@201[empty] // through LazyPackageFragmentScopeForJavaPackage@205 memberIndex = computeMemberIndex$1@210 // through LazyPackageFragmentScopeForJavaPackage@205 } @@ -380,11 +381,11 @@ LazyJavaTypeParameterDescriptor@34['E'] { } LazyJavaTypeParameterDescriptor@25['E'] { - typeConstructor = AbstractLazyTypeParameterDescriptor$1@85 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@74 } LazyJavaTypeParameterDescriptor@29['E'] { - typeConstructor = AbstractLazyTypeParameterDescriptor$1@74 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@85 } LazyJavaTypeParameterResolver@218 { @@ -392,9 +393,9 @@ LazyJavaTypeParameterResolver@218 { } LazyJavaTypeParameterResolver@220 { - resolve(JavaTypeParameterImpl@221['E']) = LazyJavaTypeParameterDescriptor@34['E'] + resolve(JavaTypeParameterImpl@84['E']) = LazyJavaTypeParameterDescriptor@29['E'] } -LazyJavaTypeParameterResolver@222 { - resolve(JavaTypeParameterImpl@73['E']) = LazyJavaTypeParameterDescriptor@29['E'] +LazyJavaTypeParameterResolver@221 { + resolve(JavaTypeParameterImpl@222['E']) = LazyJavaTypeParameterDescriptor@34['E'] } diff --git a/compiler/testData/diagnostics/tests/inference/listConstructor.kt b/compiler/testData/diagnostics/tests/inference/listConstructor.kt index 99da206d000..56f8232819b 100644 --- a/compiler/testData/diagnostics/tests/inference/listConstructor.kt +++ b/compiler/testData/diagnostics/tests/inference/listConstructor.kt @@ -20,7 +20,7 @@ fun test() { // --------------------- // copy from kotlin util -fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size)) +fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size())) fun > Array.toCollection(result: C) : C { for (element in this) result.add(element) diff --git a/compiler/testData/diagnostics/tests/inference/listConstructor.lazy.log b/compiler/testData/diagnostics/tests/inference/listConstructor.lazy.log index 5be130bc7f1..4635e41001c 100644 --- a/compiler/testData/diagnostics/tests/inference/listConstructor.lazy.log +++ b/compiler/testData/diagnostics/tests/inference/listConstructor.lazy.log @@ -103,63 +103,63 @@ LazyJavaClassifierType@68['E'] { arguments = ArrayList@69[empty] classifier = JavaTypeParameterImpl@70['E'] nullable = 'false': Boolean@48 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@71 +} + +LazyJavaClassifierType@72['E'] { + arguments = ArrayList@73[empty] + classifier = JavaTypeParameterImpl@74['E'] + nullable = 'false': Boolean@48 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@71 +} + +LazyJavaClassifierType@75['E'] { + arguments = ArrayList@76[empty] + classifier = JavaTypeParameterImpl@77['E'] + nullable = 'false': Boolean@48 typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 } -LazyJavaClassifierType@71['E'] { - arguments = ArrayList@72[empty] - classifier = JavaTypeParameterImpl@73['E'] +LazyJavaClassifierType@78['E'] { + arguments = ArrayList@79[empty] + classifier = JavaTypeParameterImpl@80['E'] nullable = 'false': Boolean@48 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 -} - -LazyJavaClassifierType@74['E'] { - arguments = ArrayList@75[empty] - classifier = JavaTypeParameterImpl@76['E'] - nullable = 'false': Boolean@48 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 -} - -LazyJavaClassifierType@77['E'] { - arguments = ArrayList@78[empty] - classifier = JavaTypeParameterImpl@79['E'] - nullable = 'false': Boolean@48 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@80 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 } LazyJavaClassifierType@81['E'] { arguments = ArrayList@82[empty] - classifier = JavaTypeParameterImpl@70['E'] + classifier = JavaTypeParameterImpl@77['E'] nullable = 'true': Boolean@54 typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 } LazyJavaClassifierType@83['E'] { arguments = ArrayList@84[empty] - classifier = JavaTypeParameterImpl@79['E'] + classifier = JavaTypeParameterImpl@74['E'] nullable = 'true': Boolean@54 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@80 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@71 } LazyJavaClassifierType@85['E'] { arguments = ArrayList@86[empty] - classifier = JavaTypeParameterImpl@76['E'] + classifier = JavaTypeParameterImpl@62['E'] nullable = 'true': Boolean@54 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 } LazyJavaClassifierType@87['E'] { arguments = ArrayList@88[empty] - classifier = JavaTypeParameterImpl@73['E'] + classifier = JavaTypeParameterImpl@80['E'] nullable = 'true': Boolean@54 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 } LazyJavaClassifierType@89['E'] { arguments = ArrayList@90[empty] - classifier = JavaTypeParameterImpl@62['E'] + classifier = JavaTypeParameterImpl@70['E'] nullable = 'true': Boolean@54 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@71 } LazyJavaClassifierType@91['E'] { @@ -296,7 +296,8 @@ LazyJavaPackageFragment@139['lang'] { classes('iterator': Name@195) = null // through LazyPackageFragmentScopeForJavaPackage@190 classes('next': Name@196) = null // through LazyPackageFragmentScopeForJavaPackage@190 classes('nil': Name@197) = null // through LazyPackageFragmentScopeForJavaPackage@190 - classes('toCollection': Name@198) = null // through LazyPackageFragmentScopeForJavaPackage@190 + classes('size': Name@198) = null // through LazyPackageFragmentScopeForJavaPackage@190 + classes('toCollection': Name@199) = null // through LazyPackageFragmentScopeForJavaPackage@190 deserializedPackageScope = Empty@184 // through LazyPackageFragmentScopeForJavaPackage@190 functions('ArrayList': Name@189) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 functions('add': Name@191) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 @@ -306,61 +307,64 @@ LazyJavaPackageFragment@139['lang'] { functions('iterator': Name@195) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 functions('next': Name@196) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 functions('nil': Name@197) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 - functions('toCollection': Name@198) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 - memberIndex = computeMemberIndex$1@199 // through LazyPackageFragmentScopeForJavaPackage@190 + functions('size': Name@198) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 + functions('toCollection': Name@199) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@190 + memberIndex = computeMemberIndex$1@200 // through LazyPackageFragmentScopeForJavaPackage@190 } LazyJavaPackageFragment@152['util'] { - classes('Any': Name@200) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('Array': Name@202) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('ArrayList': Name@203) = LazyJavaClassDescriptor@4['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@201 - classes('Int': Name@204) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('List': Name@205) = LazyJavaClassDescriptor@180['List'] // through LazyPackageFragmentScopeForJavaPackage@201 - classes('MutableCollection': Name@206) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('String': Name@207) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('add': Name@191) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('arrayList': Name@192) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('cons': Name@193) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('hasNext': Name@194) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('iterator': Name@195) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('next': Name@196) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('nil': Name@197) = null // through LazyPackageFragmentScopeForJavaPackage@201 - classes('toCollection': Name@198) = null // through LazyPackageFragmentScopeForJavaPackage@201 - deserializedPackageScope = Empty@184 // through LazyPackageFragmentScopeForJavaPackage@201 - functions('ArrayList': Name@189) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('add': Name@191) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('arrayList': Name@192) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('cons': Name@193) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('hasNext': Name@194) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('iterator': Name@195) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('next': Name@196) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('nil': Name@197) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - functions('toCollection': Name@198) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@201 - memberIndex = computeMemberIndex$1@208 // through LazyPackageFragmentScopeForJavaPackage@201 + classes('Any': Name@201) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('Array': Name@203) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('ArrayList': Name@204) = LazyJavaClassDescriptor@4['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@202 + classes('Int': Name@205) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('List': Name@206) = LazyJavaClassDescriptor@180['List'] // through LazyPackageFragmentScopeForJavaPackage@202 + classes('MutableCollection': Name@207) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('String': Name@208) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('add': Name@191) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('arrayList': Name@192) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('cons': Name@193) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('hasNext': Name@194) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('iterator': Name@195) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('next': Name@196) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('nil': Name@197) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('size': Name@198) = null // through LazyPackageFragmentScopeForJavaPackage@202 + classes('toCollection': Name@199) = null // through LazyPackageFragmentScopeForJavaPackage@202 + deserializedPackageScope = Empty@184 // through LazyPackageFragmentScopeForJavaPackage@202 + functions('ArrayList': Name@189) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('add': Name@191) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('arrayList': Name@192) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('cons': Name@193) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('hasNext': Name@194) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('iterator': Name@195) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('next': Name@196) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('nil': Name@197) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('size': Name@198) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + functions('toCollection': Name@199) = EmptyList@186[empty] // through LazyPackageFragmentScopeForJavaPackage@202 + memberIndex = computeMemberIndex$1@209 // through LazyPackageFragmentScopeForJavaPackage@202 } LazyJavaTypeParameterDescriptor@26['E'] { - defaultType = JetTypeImpl@209['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 - upperBounds = LinkedHashSet@210[1] { NullableType@211 } -} - -LazyJavaTypeParameterDescriptor@21['E'] { + defaultType = JetTypeImpl@210['E'] typeConstructor = AbstractLazyTypeParameterDescriptor$1@63 + upperBounds = LinkedHashSet@211[1] { NullableType@212 } } LazyJavaTypeParameterDescriptor@17['E'] { - typeConstructor = AbstractLazyTypeParameterDescriptor$1@80 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@67 } -LazyJavaTypeParameterResolver@212 { - resolve(JavaTypeParameterImpl@213['E']) = LazyJavaTypeParameterDescriptor@17['E'] +LazyJavaTypeParameterDescriptor@21['E'] { + typeConstructor = AbstractLazyTypeParameterDescriptor$1@71 +} + +LazyJavaTypeParameterResolver@213 { + resolve(JavaTypeParameterImpl@74['E']) = LazyJavaTypeParameterDescriptor@21['E'] } LazyJavaTypeParameterResolver@214 { - resolve(JavaTypeParameterImpl@70['E']) = LazyJavaTypeParameterDescriptor@21['E'] + resolve(JavaTypeParameterImpl@215['E']) = LazyJavaTypeParameterDescriptor@26['E'] } -LazyJavaTypeParameterResolver@215 { - resolve(JavaTypeParameterImpl@216['E']) = LazyJavaTypeParameterDescriptor@26['E'] +LazyJavaTypeParameterResolver@216 { + resolve(JavaTypeParameterImpl@217['E']) = LazyJavaTypeParameterDescriptor@17['E'] } diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt2179.kt b/compiler/testData/diagnostics/tests/inference/regressions/kt2179.kt index 617d58a001d..ae09d44a874 100644 --- a/compiler/testData/diagnostics/tests/inference/regressions/kt2179.kt +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt2179.kt @@ -23,7 +23,7 @@ fun test() { //------------ -fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size)) +fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size())) fun Collection.map(transform : (T) -> R) : List { return mapTo(java.util.ArrayList(this.size), transform) diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt2324.kt b/compiler/testData/diagnostics/tests/inference/regressions/kt2324.kt index bc2186f9fc0..0227decc730 100644 --- a/compiler/testData/diagnostics/tests/inference/regressions/kt2324.kt +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt2324.kt @@ -25,7 +25,7 @@ fun testSomeFunction() { fun assertEquals(expected: Any?, actual: Any?, message: String = "") { } -fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size)) +fun arrayList(vararg values: T) : ArrayList = values.toCollection(ArrayList(values.size())) fun > Array.toCollection(result: C) : C { for (element in this) result.add(element) diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt2324.lazy.log b/compiler/testData/diagnostics/tests/inference/regressions/kt2324.lazy.log index b093a2ba8fd..2370be1b0d6 100644 --- a/compiler/testData/diagnostics/tests/inference/regressions/kt2324.lazy.log +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt2324.lazy.log @@ -132,91 +132,91 @@ LazyJavaClassifierType@102['E'] { arguments = ArrayList@103[empty] classifier = JavaTypeParameterImpl@104['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 } -LazyJavaClassifierType@105['E'] { - arguments = ArrayList@106[empty] - classifier = JavaTypeParameterImpl@107['E'] +LazyJavaClassifierType@106['E'] { + arguments = ArrayList@107[empty] + classifier = JavaTypeParameterImpl@108['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 } LazyJavaClassifierType@109['E'] { arguments = ArrayList@110[empty] classifier = JavaTypeParameterImpl@111['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 } LazyJavaClassifierType@112['E'] { arguments = ArrayList@113[empty] classifier = JavaTypeParameterImpl@114['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@115['E'] { arguments = ArrayList@116[empty] classifier = JavaTypeParameterImpl@117['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@118['E'] { arguments = ArrayList@119[empty] classifier = JavaTypeParameterImpl@120['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@121['E'] { arguments = ArrayList@122[empty] classifier = JavaTypeParameterImpl@123['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@124['E'] { arguments = ArrayList@125[empty] classifier = JavaTypeParameterImpl@126['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 } LazyJavaClassifierType@127['E'] { arguments = ArrayList@128[empty] classifier = JavaTypeParameterImpl@129['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@130['E'] { arguments = ArrayList@131[empty] classifier = JavaTypeParameterImpl@132['E'] nullable = 'false': Boolean@82 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 } LazyJavaClassifierType@133['E'] { arguments = ArrayList@134[empty] - classifier = JavaTypeParameterImpl@96['E'] + classifier = JavaTypeParameterImpl@123['E'] nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@135['E'] { arguments = ArrayList@136[empty] - classifier = JavaTypeParameterImpl@126['E'] + classifier = JavaTypeParameterImpl@132['E'] nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 } LazyJavaClassifierType@137['E'] { arguments = ArrayList@138[empty] classifier = JavaTypeParameterImpl@114['E'] nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } LazyJavaClassifierType@139['E'] { @@ -228,68 +228,68 @@ LazyJavaClassifierType@139['E'] { LazyJavaClassifierType@141['E'] { arguments = ArrayList@142[empty] - classifier = JavaTypeParameterImpl@104['E'] - nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 -} - -LazyJavaClassifierType@143['E'] { - arguments = ArrayList@144[empty] - classifier = JavaTypeParameterImpl@117['E'] - nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 -} - -LazyJavaClassifierType@145['E'] { - arguments = ArrayList@146[empty] - classifier = JavaTypeParameterImpl@129['E'] + classifier = JavaTypeParameterImpl@96['E'] nullable = 'true': Boolean@88 typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 } +LazyJavaClassifierType@143['E'] { + arguments = ArrayList@144[empty] + classifier = JavaTypeParameterImpl@111['E'] + nullable = 'true': Boolean@88 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 +} + +LazyJavaClassifierType@145['E'] { + arguments = ArrayList@146[empty] + classifier = JavaTypeParameterImpl@117['E'] + nullable = 'true': Boolean@88 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 +} + LazyJavaClassifierType@147['E'] { arguments = ArrayList@148[empty] - classifier = JavaTypeParameterImpl@123['E'] + classifier = JavaTypeParameterImpl@108['E'] nullable = 'true': Boolean@88 typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 } LazyJavaClassifierType@149['E'] { arguments = ArrayList@150[empty] - classifier = JavaTypeParameterImpl@111['E'] - nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 -} - -LazyJavaClassifierType@151['E'] { - arguments = ArrayList@152[empty] classifier = JavaTypeParameterImpl@120['E'] nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 -} - -LazyJavaClassifierType@153['E'] { - arguments = ArrayList@154[empty] - classifier = JavaTypeParameterImpl@107['E'] - nullable = 'true': Boolean@88 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 -} - -LazyJavaClassifierType@155['E'] { - arguments = ArrayList@156[empty] - classifier = JavaTypeParameterImpl@132['E'] - nullable = 'true': Boolean@88 typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 } -LazyJavaClassifierType@52['List'] { +LazyJavaClassifierType@151['E'] { + arguments = ArrayList@152[empty] + classifier = JavaTypeParameterImpl@129['E'] + nullable = 'true': Boolean@88 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 +} + +LazyJavaClassifierType@153['E'] { + arguments = ArrayList@154[empty] + classifier = JavaTypeParameterImpl@104['E'] + nullable = 'true': Boolean@88 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 +} + +LazyJavaClassifierType@155['E'] { + arguments = ArrayList@156[empty] + classifier = JavaTypeParameterImpl@126['E'] + nullable = 'true': Boolean@88 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 +} + +LazyJavaClassifierType@57['List'] { arguments = ArrayList@157[1] { TypeProjectionImpl@158 } classifier = JavaClassImpl@159['List'] memberScope = SubstitutingScope@160 typeConstructor = DeserializedClassTypeConstructor@161 } -LazyJavaClassifierType@57['List'] { +LazyJavaClassifierType@52['List'] { arguments = ArrayList@162[1] { TypeProjectionImpl@163 } classifier = JavaClassImpl@164['List'] memberScope = SubstitutingScope@165 @@ -412,9 +412,10 @@ LazyJavaPackageFragment@207['lang'] { classes('invoke': Name@259) = null // through LazyPackageFragmentScopeForJavaPackage@254 classes('iterator': Name@260) = null // through LazyPackageFragmentScopeForJavaPackage@254 classes('next': Name@261) = null // through LazyPackageFragmentScopeForJavaPackage@254 - classes('someFunction': Name@262) = null // through LazyPackageFragmentScopeForJavaPackage@254 - classes('toCollection': Name@263) = null // through LazyPackageFragmentScopeForJavaPackage@254 - classes('transform': Name@264) = null // through LazyPackageFragmentScopeForJavaPackage@254 + classes('size': Name@262) = null // through LazyPackageFragmentScopeForJavaPackage@254 + classes('someFunction': Name@263) = null // through LazyPackageFragmentScopeForJavaPackage@254 + classes('toCollection': Name@264) = null // through LazyPackageFragmentScopeForJavaPackage@254 + classes('transform': Name@265) = null // through LazyPackageFragmentScopeForJavaPackage@254 deserializedPackageScope = Empty@249 // through LazyPackageFragmentScopeForJavaPackage@254 functions('ArrayList': Name@253) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 functions('add': Name@7) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 @@ -425,96 +426,99 @@ LazyJavaPackageFragment@207['lang'] { functions('invoke': Name@259) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 functions('iterator': Name@260) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 functions('next': Name@261) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 - functions('someFunction': Name@262) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 - functions('toCollection': Name@263) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 - functions('transform': Name@264) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 - memberIndex = computeMemberIndex$1@265 // through LazyPackageFragmentScopeForJavaPackage@254 + functions('size': Name@262) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 + functions('someFunction': Name@263) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 + functions('toCollection': Name@264) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 + functions('transform': Name@265) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@254 + memberIndex = computeMemberIndex$1@266 // through LazyPackageFragmentScopeForJavaPackage@254 } LazyJavaPackageFragment@219['util'] { - classes('Any': Name@266) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('Array': Name@268) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('ArrayList': Name@269) = LazyJavaClassDescriptor@21['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@267 - classes('Int': Name@270) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('List': Name@271) = LazyJavaClassDescriptor@245['List'] // through LazyPackageFragmentScopeForJavaPackage@267 - classes('MutableCollection': Name@272) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('String': Name@273) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('add': Name@7) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('arrayList': Name@255) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('assertEquals': Name@256) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('get': Name@257) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('hasNext': Name@258) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('invoke': Name@259) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('iterator': Name@260) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('next': Name@261) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('someFunction': Name@262) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('toCollection': Name@263) = null // through LazyPackageFragmentScopeForJavaPackage@267 - classes('transform': Name@264) = null // through LazyPackageFragmentScopeForJavaPackage@267 - deserializedPackageScope = Empty@249 // through LazyPackageFragmentScopeForJavaPackage@267 - functions('ArrayList': Name@253) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('add': Name@7) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('arrayList': Name@255) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('assertEquals': Name@256) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('get': Name@257) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('hasNext': Name@258) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('invoke': Name@259) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('iterator': Name@260) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('next': Name@261) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('someFunction': Name@262) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('toCollection': Name@263) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - functions('transform': Name@264) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@267 - memberIndex = computeMemberIndex$1@274 // through LazyPackageFragmentScopeForJavaPackage@267 -} - -LazyJavaTypeParameterDescriptor@45['E'] { - defaultType = JetTypeImpl@275['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 - upperBounds = LinkedHashSet@276[1] { NullableType@277 } - upperBoundsAsType = NullableType@277 -} - -LazyJavaTypeParameterDescriptor@54['E'] { - defaultType = JetTypeImpl@278['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 - upperBounds = LinkedHashSet@279[1] { NullableType@280 } - upperBoundsAsType = NullableType@280 + classes('Any': Name@267) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('Array': Name@269) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('ArrayList': Name@270) = LazyJavaClassDescriptor@21['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@268 + classes('Int': Name@271) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('List': Name@272) = LazyJavaClassDescriptor@245['List'] // through LazyPackageFragmentScopeForJavaPackage@268 + classes('MutableCollection': Name@273) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('String': Name@274) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('add': Name@7) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('arrayList': Name@255) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('assertEquals': Name@256) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('get': Name@257) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('hasNext': Name@258) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('invoke': Name@259) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('iterator': Name@260) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('next': Name@261) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('size': Name@262) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('someFunction': Name@263) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('toCollection': Name@264) = null // through LazyPackageFragmentScopeForJavaPackage@268 + classes('transform': Name@265) = null // through LazyPackageFragmentScopeForJavaPackage@268 + deserializedPackageScope = Empty@249 // through LazyPackageFragmentScopeForJavaPackage@268 + functions('ArrayList': Name@253) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('add': Name@7) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('arrayList': Name@255) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('assertEquals': Name@256) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('get': Name@257) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('hasNext': Name@258) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('invoke': Name@259) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('iterator': Name@260) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('next': Name@261) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('size': Name@262) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('someFunction': Name@263) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('toCollection': Name@264) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + functions('transform': Name@265) = EmptyList@8[empty] // through LazyPackageFragmentScopeForJavaPackage@268 + memberIndex = computeMemberIndex$1@275 // through LazyPackageFragmentScopeForJavaPackage@268 } LazyJavaTypeParameterDescriptor@49['E'] { - defaultType = JetTypeImpl@281['E'] + defaultType = JetTypeImpl@276['E'] + typeConstructor = AbstractLazyTypeParameterDescriptor$1@105 + upperBounds = LinkedHashSet@277[1] { NullableType@278 } + upperBoundsAsType = NullableType@278 +} + +LazyJavaTypeParameterDescriptor@45['E'] { + defaultType = JetTypeImpl@279['E'] + typeConstructor = AbstractLazyTypeParameterDescriptor$1@97 + upperBounds = LinkedHashSet@280[1] { NullableType@281 } + upperBoundsAsType = NullableType@281 +} + +LazyJavaTypeParameterDescriptor@54['E'] { + defaultType = JetTypeImpl@282['E'] typeConstructor = AbstractLazyTypeParameterDescriptor$1@101 - upperBounds = LinkedHashSet@282[1] { NullableType@283 } - upperBoundsAsType = NullableType@283 + upperBounds = LinkedHashSet@283[1] { NullableType@284 } + upperBoundsAsType = NullableType@284 } -LazyJavaTypeParameterResolver@284 { - resolve(JavaTypeParameterImpl@285['E']) = LazyJavaTypeParameterDescriptor@54['E'] +LazyJavaTypeParameterResolver@285 { + resolve(JavaTypeParameterImpl@286['E']) = LazyJavaTypeParameterDescriptor@45['E'] } -LazyJavaTypeParameterResolver@286 { - resolve(JavaTypeParameterImpl@287['E']) = LazyJavaTypeParameterDescriptor@49['E'] +LazyJavaTypeParameterResolver@287 { + resolve(JavaTypeParameterImpl@288['E']) = LazyJavaTypeParameterDescriptor@54['E'] } -LazyJavaTypeParameterResolver@288 { - resolve(JavaTypeParameterImpl@289['E']) = LazyJavaTypeParameterDescriptor@45['E'] -} - -LazyJavaTypeParameterResolver@290 { - resolve(JavaTypeParameterImpl@114['E']) = null +LazyJavaTypeParameterResolver@289 { + resolve(JavaTypeParameterImpl@290['E']) = LazyJavaTypeParameterDescriptor@49['E'] } LazyJavaTypeParameterResolver@291 { - resolve(JavaTypeParameterImpl@132['E']) = null + resolve(JavaTypeParameterImpl@108['E']) = null } LazyJavaTypeParameterResolver@292 { - resolve(JavaTypeParameterImpl@96['E']) = null + resolve(JavaTypeParameterImpl@132['E']) = null } LazyJavaTypeParameterResolver@293 { - resolve(JavaTypeParameterImpl@107['E']) = null + resolve(JavaTypeParameterImpl@129['E']) = null } LazyJavaTypeParameterResolver@294 { resolve(JavaTypeParameterImpl@104['E']) = null } + +LazyJavaTypeParameterResolver@295 { + resolve(JavaTypeParameterImpl@123['E']) = null +} diff --git a/compiler/testData/diagnostics/tests/kt310.kt b/compiler/testData/diagnostics/tests/kt310.kt index fed6efafaad..7f7228bcb63 100644 --- a/compiler/testData/diagnostics/tests/kt310.kt +++ b/compiler/testData/diagnostics/tests/kt310.kt @@ -1,3 +1,3 @@ -fun f(c: Array): Int { - return c.size() +fun f(c: String): Int { + return c.length() } diff --git a/compiler/testData/diagnostics/tests/kt310.lazy.log b/compiler/testData/diagnostics/tests/kt310.lazy.log index 2d912addff5..5fdc4481a5f 100644 --- a/compiler/testData/diagnostics/tests/kt310.lazy.log +++ b/compiler/testData/diagnostics/tests/kt310.lazy.log @@ -1,26 +1,26 @@ LazyJavaPackageFragmentProvider@0 { packageFragments('': FqName@1) = LazyJavaPackageFragment@2[''] - packageFragments('Array': FqName@3) = null - packageFragments('Int': FqName@4) = null + packageFragments('Int': FqName@3) = null + packageFragments('String': FqName@4) = null packageFragments('java': FqName@5) = LazyJavaPackageFragment@6['java'] packageFragments('java.lang': FqName@7) = LazyJavaPackageFragment@8['lang'] - packageFragments('java.lang.Array': FqName@9) = null - packageFragments('java.lang.Int': FqName@10) = null + packageFragments('java.lang.Int': FqName@9) = null + packageFragments('java.lang.String': FqName@10) = null packageFragments('kotlin': FqName@11) = null - packageFragments('kotlin.Array': FqName@12) = null - packageFragments('kotlin.Int': FqName@13) = null + packageFragments('kotlin.Int': FqName@12) = null + packageFragments('kotlin.String': FqName@13) = null packageFragments('kotlin.io': FqName@14) = null packageFragments('kotlin.jvm': FqName@15) = null } LazyJavaPackageFragment@2[''] { - classes('Array': Name@16) = null // through LazyPackageFragmentScopeForJavaPackage@17 - classes('Int': Name@18) = null // through LazyPackageFragmentScopeForJavaPackage@17 + classes('Int': Name@16) = null // through LazyPackageFragmentScopeForJavaPackage@17 + classes('String': Name@18) = null // through LazyPackageFragmentScopeForJavaPackage@17 classes('invoke': Name@19) = null // through LazyPackageFragmentScopeForJavaPackage@17 - classes('size': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@17 + classes('length': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@17 deserializedPackageScope = Empty@21 // through LazyPackageFragmentScopeForJavaPackage@17 functions('invoke': Name@19) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@17 - functions('size': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@17 + functions('length': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@17 memberIndex = computeMemberIndex$1@23 // through LazyPackageFragmentScopeForJavaPackage@17 } @@ -33,9 +33,9 @@ LazyJavaPackageFragment@6['java'] { LazyJavaPackageFragment@8['lang'] { classes('invoke': Name@19) = null // through LazyPackageFragmentScopeForJavaPackage@28 - classes('size': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@28 + classes('length': Name@20) = null // through LazyPackageFragmentScopeForJavaPackage@28 deserializedPackageScope = Empty@21 // through LazyPackageFragmentScopeForJavaPackage@28 functions('invoke': Name@19) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@28 - functions('size': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@28 + functions('length': Name@20) = EmptyList@22[empty] // through LazyPackageFragmentScopeForJavaPackage@28 memberIndex = computeMemberIndex$1@29 // through LazyPackageFragmentScopeForJavaPackage@28 } diff --git a/compiler/testData/diagnostics/tests/kt310.txt b/compiler/testData/diagnostics/tests/kt310.txt index 2cf6278d8b6..feaa0c7ce41 100644 --- a/compiler/testData/diagnostics/tests/kt310.txt +++ b/compiler/testData/diagnostics/tests/kt310.txt @@ -1,3 +1,3 @@ -package +package -internal fun f(/*0*/ c: kotlin.Array): kotlin.Int +internal fun f(/*0*/ c: kotlin.String): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/regressions/kt312.kt b/compiler/testData/diagnostics/tests/regressions/kt312.kt index 783cbfc6bec..7b1e2a837e9 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt312.kt +++ b/compiler/testData/diagnostics/tests/regressions/kt312.kt @@ -1,7 +1,7 @@ // KT-312 Nullability problem when a nullable version of a generic type is returned fun Array.safeGet(index : Int) : T? { - return if (index < size) this[index] else null + return if (index < size()) this[index] else null } val args : Array = Array(1, {""}) diff --git a/compiler/testData/diagnostics/tests/regressions/kt312.lazy.log b/compiler/testData/diagnostics/tests/regressions/kt312.lazy.log index 8d6772c1262..67469a77548 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt312.lazy.log +++ b/compiler/testData/diagnostics/tests/regressions/kt312.lazy.log @@ -41,6 +41,7 @@ LazyJavaPackageFragment@3[''] { functions('compareTo': Name@31) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@27 functions('get': Name@32) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@27 functions('safeGet': Name@33) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@27 + functions('size': Name@34) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@27 memberIndex = computeMemberIndex$1@38 // through LazyPackageFragmentScopeForJavaPackage@27 } @@ -63,5 +64,6 @@ LazyJavaPackageFragment@12['lang'] { functions('compareTo': Name@31) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@43 functions('get': Name@32) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@43 functions('safeGet': Name@33) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@43 + functions('size': Name@34) = EmptyList@37[empty] // through LazyPackageFragmentScopeForJavaPackage@43 memberIndex = computeMemberIndex$1@44 // through LazyPackageFragmentScopeForJavaPackage@43 } diff --git a/compiler/testData/diagnostics/tests/regressions/kt580.kt b/compiler/testData/diagnostics/tests/regressions/kt580.kt index 9226b8f5b39..6664ace4aff 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt580.kt +++ b/compiler/testData/diagnostics/tests/regressions/kt580.kt @@ -17,5 +17,5 @@ fun main() { } } -fun Array.lastIndex() = size - 1 -val Array.lastIndex : Int get() = size - 1 +fun Array.lastIndex() = size() - 1 +val Array.lastIndex : Int get() = size() - 1 diff --git a/compiler/testData/diagnostics/tests/regressions/kt580.lazy.log b/compiler/testData/diagnostics/tests/regressions/kt580.lazy.log index 8010e3ec91f..9a593404b1c 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt580.lazy.log +++ b/compiler/testData/diagnostics/tests/regressions/kt580.lazy.log @@ -129,21 +129,21 @@ LazyJavaClassifierType@101['E'] { arguments = ArrayList@102[empty] classifier = JavaTypeParameterImpl@103['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@104 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } -LazyJavaClassifierType@105['E'] { - arguments = ArrayList@106[empty] - classifier = JavaTypeParameterImpl@107['E'] +LazyJavaClassifierType@104['E'] { + arguments = ArrayList@105[empty] + classifier = JavaTypeParameterImpl@106['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@107 } -LazyJavaClassifierType@109['E'] { - arguments = ArrayList@110[empty] - classifier = JavaTypeParameterImpl@111['E'] +LazyJavaClassifierType@108['E'] { + arguments = ArrayList@109[empty] + classifier = JavaTypeParameterImpl@110['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@112['E'] { @@ -157,7 +157,7 @@ LazyJavaClassifierType@115['E'] { arguments = ArrayList@116[empty] classifier = JavaTypeParameterImpl@117['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@118['E'] { @@ -171,129 +171,129 @@ LazyJavaClassifierType@121['E'] { arguments = ArrayList@122[empty] classifier = JavaTypeParameterImpl@123['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@124['E'] { arguments = ArrayList@125[empty] classifier = JavaTypeParameterImpl@126['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@107 } LazyJavaClassifierType@127['E'] { arguments = ArrayList@128[empty] classifier = JavaTypeParameterImpl@129['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@104 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@130['E'] { arguments = ArrayList@131[empty] classifier = JavaTypeParameterImpl@132['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@133['E'] { arguments = ArrayList@134[empty] classifier = JavaTypeParameterImpl@135['E'] nullable = 'false': Boolean@85 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@136['E'] { arguments = ArrayList@137[empty] - classifier = JavaTypeParameterImpl@103['E'] + classifier = JavaTypeParameterImpl@126['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@104 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@107 } LazyJavaClassifierType@138['E'] { arguments = ArrayList@139[empty] - classifier = JavaTypeParameterImpl@132['E'] + classifier = JavaTypeParameterImpl@117['E'] nullable = 'true': Boolean@91 typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@140['E'] { arguments = ArrayList@141[empty] - classifier = JavaTypeParameterImpl@117['E'] + classifier = JavaTypeParameterImpl@110['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@142['E'] { arguments = ArrayList@143[empty] - classifier = JavaTypeParameterImpl@129['E'] + classifier = JavaTypeParameterImpl@103['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@104 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@144['E'] { arguments = ArrayList@145[empty] - classifier = JavaTypeParameterImpl@107['E'] + classifier = JavaTypeParameterImpl@135['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@146['E'] { arguments = ArrayList@147[empty] + classifier = JavaTypeParameterImpl@129['E'] + nullable = 'true': Boolean@91 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 +} + +LazyJavaClassifierType@148['E'] { + arguments = ArrayList@149[empty] classifier = JavaTypeParameterImpl@114['E'] nullable = 'true': Boolean@91 typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } -LazyJavaClassifierType@148['E'] { - arguments = ArrayList@149[empty] - classifier = JavaTypeParameterImpl@111['E'] - nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 -} - LazyJavaClassifierType@150['E'] { arguments = ArrayList@151[empty] - classifier = JavaTypeParameterImpl@123['E'] + classifier = JavaTypeParameterImpl@106['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@107 } LazyJavaClassifierType@152['E'] { arguments = ArrayList@153[empty] - classifier = JavaTypeParameterImpl@135['E'] + classifier = JavaTypeParameterImpl@99['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@154['E'] { arguments = ArrayList@155[empty] - classifier = JavaTypeParameterImpl@120['E'] + classifier = JavaTypeParameterImpl@123['E'] nullable = 'true': Boolean@91 typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } LazyJavaClassifierType@156['E'] { arguments = ArrayList@157[empty] - classifier = JavaTypeParameterImpl@99['E'] + classifier = JavaTypeParameterImpl@132['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 } LazyJavaClassifierType@158['E'] { arguments = ArrayList@159[empty] - classifier = JavaTypeParameterImpl@126['E'] + classifier = JavaTypeParameterImpl@120['E'] nullable = 'true': Boolean@91 - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 } -LazyJavaClassifierType@55['List'] { +LazyJavaClassifierType@60['List'] { arguments = ArrayList@160[1] { TypeProjectionImpl@161 } classifier = JavaClassImpl@162['List'] memberScope = SubstitutingScope@163 typeConstructor = DeserializedClassTypeConstructor@164 } -LazyJavaClassifierType@60['List'] { +LazyJavaClassifierType@55['List'] { arguments = ArrayList@165[1] { TypeProjectionImpl@166 } classifier = JavaClassImpl@167['List'] memberScope = SubstitutingScope@168 @@ -401,6 +401,7 @@ LazyJavaPackageFragment@193['lang'] { functions('minus': Name@234) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228 functions('next': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228 functions('rangeTo': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228 + functions('size': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228 memberIndex = computeMemberIndex$1@238 // through LazyPackageFragmentScopeForJavaPackage@228 } @@ -430,26 +431,27 @@ LazyJavaPackageFragment@199['util'] { functions('minus': Name@234) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240 functions('next': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240 functions('rangeTo': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240 + functions('size': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240 memberIndex = computeMemberIndex$1@243 // through LazyPackageFragmentScopeForJavaPackage@240 } LazyJavaTypeParameterDescriptor@57['E'] { defaultType = JetTypeImpl@244['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@108 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 upperBounds = LinkedHashSet@245[1] { NullableType@246 } upperBoundsAsType = NullableType@246 } -LazyJavaTypeParameterDescriptor@52['E'] { +LazyJavaTypeParameterDescriptor@48['E'] { defaultType = JetTypeImpl@247['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@100 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@107 upperBounds = LinkedHashSet@248[1] { NullableType@249 } upperBoundsAsType = NullableType@249 } -LazyJavaTypeParameterDescriptor@48['E'] { +LazyJavaTypeParameterDescriptor@52['E'] { defaultType = JetTypeImpl@250['E'] - typeConstructor = AbstractLazyTypeParameterDescriptor$1@104 + typeConstructor = AbstractLazyTypeParameterDescriptor$1@111 upperBounds = LinkedHashSet@251[1] { NullableType@252 } upperBoundsAsType = NullableType@252 } @@ -467,21 +469,21 @@ LazyJavaTypeParameterResolver@257 { } LazyJavaTypeParameterResolver@259 { - resolve(JavaTypeParameterImpl@114['E']) = null + resolve(JavaTypeParameterImpl@123['E']) = null } LazyJavaTypeParameterResolver@260 { - resolve(JavaTypeParameterImpl@135['E']) = null -} - -LazyJavaTypeParameterResolver@261 { - resolve(JavaTypeParameterImpl@129['E']) = null -} - -LazyJavaTypeParameterResolver@262 { resolve(JavaTypeParameterImpl@126['E']) = null } -LazyJavaTypeParameterResolver@263 { +LazyJavaTypeParameterResolver@261 { + resolve(JavaTypeParameterImpl@99['E']) = null +} + +LazyJavaTypeParameterResolver@262 { resolve(JavaTypeParameterImpl@132['E']) = null } + +LazyJavaTypeParameterResolver@263 { + resolve(JavaTypeParameterImpl@129['E']) = null +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/ClassObjectAnnotatedWithItsClass.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/ClassObjectAnnotatedWithItsClass.lazy.log index 3ebf64668ce..94e6f199048 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/ClassObjectAnnotatedWithItsClass.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/ClassObjectAnnotatedWithItsClass.lazy.log @@ -34,11 +34,11 @@ DeserializedType@21['T in kotlin'] { } DeserializedType@22['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@14 + constructor = AbstractLazyTypeParameterDescriptor$1@18 } DeserializedType@23['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@18 + constructor = AbstractLazyTypeParameterDescriptor$1@14 } DeserializedType@24['java.lang.Class'] { @@ -294,11 +294,11 @@ LazyJavaTypeParameterResolver@164 { } TypeDeserializer@166 { - classDescriptors('27': Integer@167) = LazyJavaClassDescriptor@42['Class'] - classDescriptors('9': Integer@168) = DeserializedClassDescriptor@169['Any'] + classDescriptors('2': Integer@167) = DeserializedClassDescriptor@168['Any'] + classDescriptors('54': Integer@169) = LazyJavaClassDescriptor@42['Class'] } TypeDeserializer@170 { - classDescriptors('27': Integer@167) = LazyJavaClassDescriptor@42['Class'] - classDescriptors('9': Integer@168) = DeserializedClassDescriptor@169['Any'] + classDescriptors('2': Integer@167) = DeserializedClassDescriptor@168['Any'] + classDescriptors('54': Integer@169) = LazyJavaClassDescriptor@42['Class'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/array.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/array.lazy.log index cf17490f3b1..0bc4f31d229 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/array.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/array.lazy.log @@ -44,7 +44,7 @@ DeserializedType@29['T in kotlin'] { } DeserializedType@30['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@22 + constructor = AbstractLazyTypeParameterDescriptor$1@26 } DeserializedType@31['T in kotlin'] { @@ -52,7 +52,7 @@ DeserializedType@31['T in kotlin'] { } DeserializedType@32['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@22 + constructor = AbstractLazyTypeParameterDescriptor$1@26 } DeserializedType@33['java.lang.Class'] { @@ -60,12 +60,12 @@ DeserializedType@33['java.lang.Class'] { memberScope = SubstitutingScope@35 } -DeserializedType@28['kotlin.Any'] { +DeserializedType@24['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@36 memberScope = DeserializedClassMemberScope@37 } -DeserializedType@24['kotlin.Any'] { +DeserializedType@28['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@36 memberScope = DeserializedClassMemberScope@37 } @@ -475,16 +475,16 @@ LazyJavaTypeParameterResolver@241 { } TypeDeserializer@243 { - classDescriptors('22': Integer@244) = DeserializedClassDescriptor@245['Int'] - classDescriptors('35': Integer@246) = DeserializedClassDescriptor@247['IntArray'] + classDescriptors('2': Integer@244) = DeserializedClassDescriptor@245['Any'] + classDescriptors('3': Integer@246) = DeserializedClassDescriptor@247['Array'] } TypeDeserializer@248 { - classDescriptors('27': Integer@249) = LazyJavaClassDescriptor@88['Class'] - classDescriptors('9': Integer@250) = DeserializedClassDescriptor@251['Any'] + classDescriptors('2': Integer@244) = DeserializedClassDescriptor@245['Any'] + classDescriptors('54': Integer@249) = LazyJavaClassDescriptor@88['Class'] } -TypeDeserializer@252 { - classDescriptors('8': Integer@253) = DeserializedClassDescriptor@254['Array'] - classDescriptors('9': Integer@250) = DeserializedClassDescriptor@251['Any'] +TypeDeserializer@250 { + classDescriptors('20': Integer@251) = DeserializedClassDescriptor@252['Int'] + classDescriptors('45': Integer@253) = DeserializedClassDescriptor@254['IntArray'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/classLiteral.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/classLiteral.lazy.log index d4d67021bc8..abdd2562c41 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/classLiteral.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/classLiteral.lazy.log @@ -171,6 +171,6 @@ LazyJavaTypeParameterResolver@104 { } TypeDeserializer@106 { - classDescriptors('27': Integer@107) = LazyJavaClassDescriptor@31['Class'] - classDescriptors('9': Integer@108) = DeserializedClassDescriptor@109['Any'] + classDescriptors('2': Integer@107) = DeserializedClassDescriptor@108['Any'] + classDescriptors('54': Integer@109) = LazyJavaClassDescriptor@31['Class'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/simple.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/simple.lazy.log index 6d948bcb9d3..1ea1862780d 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/simple.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/simple.lazy.log @@ -322,11 +322,11 @@ LazyJavaPackageFragment@85['lang'] { } TypeDeserializer@170 { - classDescriptors('22': Integer@171) = DeserializedClassDescriptor@172['Int'] - classDescriptors('35': Integer@173) = DeserializedClassDescriptor@174['IntArray'] + classDescriptors('2': Integer@171) = DeserializedClassDescriptor@172['Any'] + classDescriptors('3': Integer@173) = DeserializedClassDescriptor@174['Array'] } TypeDeserializer@175 { - classDescriptors('8': Integer@176) = DeserializedClassDescriptor@177['Array'] - classDescriptors('9': Integer@178) = DeserializedClassDescriptor@179['Any'] + classDescriptors('20': Integer@176) = DeserializedClassDescriptor@177['Int'] + classDescriptors('45': Integer@178) = DeserializedClassDescriptor@179['IntArray'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/vararg.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/vararg.lazy.log index 58fe02439b6..6453b23ebde 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/vararg.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameterMustBeConstant/vararg.lazy.log @@ -40,7 +40,7 @@ DeserializedTypeParameterDescriptor@25['T'] { } DeserializedType@29['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@22 + constructor = AbstractLazyTypeParameterDescriptor$1@26 } DeserializedType@30['T in kotlin'] { @@ -52,7 +52,7 @@ DeserializedType@31['T in kotlin'] { } DeserializedType@32['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@22 + constructor = AbstractLazyTypeParameterDescriptor$1@26 } DeserializedType@33['java.lang.Class'] { @@ -60,12 +60,12 @@ DeserializedType@33['java.lang.Class'] { memberScope = SubstitutingScope@35 } -DeserializedType@28['kotlin.Any'] { +DeserializedType@24['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@36 memberScope = DeserializedClassMemberScope@37 } -DeserializedType@24['kotlin.Any'] { +DeserializedType@28['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@36 memberScope = DeserializedClassMemberScope@37 } @@ -477,16 +477,16 @@ LazyJavaTypeParameterResolver@243 { } TypeDeserializer@245 { - classDescriptors('22': Integer@246) = DeserializedClassDescriptor@247['Int'] - classDescriptors('35': Integer@248) = DeserializedClassDescriptor@249['IntArray'] + classDescriptors('2': Integer@246) = DeserializedClassDescriptor@247['Any'] + classDescriptors('3': Integer@248) = DeserializedClassDescriptor@249['Array'] } TypeDeserializer@250 { - classDescriptors('27': Integer@251) = LazyJavaClassDescriptor@100['Class'] - classDescriptors('9': Integer@252) = DeserializedClassDescriptor@253['Any'] + classDescriptors('2': Integer@246) = DeserializedClassDescriptor@247['Any'] + classDescriptors('54': Integer@251) = LazyJavaClassDescriptor@100['Class'] } -TypeDeserializer@254 { - classDescriptors('8': Integer@255) = DeserializedClassDescriptor@256['Array'] - classDescriptors('9': Integer@252) = DeserializedClassDescriptor@253['Any'] +TypeDeserializer@252 { + classDescriptors('20': Integer@253) = DeserializedClassDescriptor@254['Int'] + classDescriptors('45': Integer@255) = DeserializedClassDescriptor@256['IntArray'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/qualifiedCallValue.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/annotations/qualifiedCallValue.lazy.log index 19359138fd4..7e3e4fb7e75 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/qualifiedCallValue.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/qualifiedCallValue.lazy.log @@ -42,7 +42,7 @@ DeserializedTypeParameterDescriptor@25['T'] { } DeserializedType@29['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@22 + constructor = AbstractLazyTypeParameterDescriptor$1@26 } DeserializedType@30['T in kotlin'] { @@ -50,7 +50,7 @@ DeserializedType@30['T in kotlin'] { } DeserializedType@31['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@26 + constructor = AbstractLazyTypeParameterDescriptor$1@22 } DeserializedType@32['T in kotlin'] { @@ -328,11 +328,11 @@ TypeDeserializer@219 { } TypeDeserializer@223 { - classDescriptors('27': Integer@224) = LazyJavaClassDescriptor@91['Class'] - classDescriptors('9': Integer@225) = DeserializedClassDescriptor@226['Any'] + classDescriptors('2': Integer@224) = DeserializedClassDescriptor@225['Any'] + classDescriptors('3': Integer@221) = DeserializedClassDescriptor@226['Array'] } TypeDeserializer@227 { - classDescriptors('8': Integer@228) = DeserializedClassDescriptor@229['Array'] - classDescriptors('9': Integer@225) = DeserializedClassDescriptor@226['Any'] + classDescriptors('2': Integer@224) = DeserializedClassDescriptor@225['Any'] + classDescriptors('54': Integer@228) = LazyJavaClassDescriptor@91['Class'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/abstractPropertyViaSubclasses.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/abstractPropertyViaSubclasses.lazy.log index 85c49bf3e0b..b1348b35225 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/abstractPropertyViaSubclasses.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/abstractPropertyViaSubclasses.lazy.log @@ -61,19 +61,19 @@ DeserializedType@39['T in kotlin.reflect.KMemberProperty'] { constructor = AbstractLazyTypeParameterDescriptor$1@35 } -DeserializedType@28['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@40 - memberScope = DeserializedClassMemberScope@41 -} - -DeserializedType@42['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@40 - memberScope = DeserializedClassMemberScope@41 +DeserializedType@40['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@41 + memberScope = DeserializedClassMemberScope@42 } DeserializedType@37['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@40 - memberScope = DeserializedClassMemberScope@41 + constructor = DeserializedClassTypeConstructor@41 + memberScope = DeserializedClassMemberScope@42 +} + +DeserializedType@28['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@41 + memberScope = DeserializedClassMemberScope@42 } DeserializedType@43['kotlin.CharSequence'] { @@ -320,13 +320,13 @@ NestedClassDescriptors@159 { } TypeDeserializer@160 { - classDescriptors('22': Integer@161) = DeserializedClassDescriptor@162['Int'] - classDescriptors('40': Integer@163) = DeserializedClassDescriptor@164['CharSequence'] + classDescriptors('20': Integer@161) = DeserializedClassDescriptor@162['Int'] + classDescriptors('59': Integer@163) = DeserializedClassDescriptor@164['CharSequence'] } TypeDeserializer@165 { - classDescriptors('22': Integer@161) = DeserializedClassDescriptor@162['Int'] - classDescriptors('40': Integer@163) = DeserializedClassDescriptor@164['CharSequence'] + classDescriptors('20': Integer@161) = DeserializedClassDescriptor@162['Int'] + classDescriptors('59': Integer@163) = DeserializedClassDescriptor@164['CharSequence'] } TypeDeserializer@166 { diff --git a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/extensionFromTopLevel.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/extensionFromTopLevel.lazy.log index af44d11f357..069dbf67fc8 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/extensionFromTopLevel.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/extensionFromTopLevel.lazy.log @@ -190,15 +190,15 @@ DeserializedType@121['R in kotlin.reflect.KExtensionProperty'] { } DeserializedType@122['R in kotlin.reflect.KMutableExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@74 + constructor = AbstractLazyTypeParameterDescriptor$1@79 } DeserializedType@123['R in kotlin.reflect.KMutableExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@74 + constructor = AbstractLazyTypeParameterDescriptor$1@79 } DeserializedType@124['R in kotlin.reflect.KMutableExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@74 + constructor = AbstractLazyTypeParameterDescriptor$1@79 } DeserializedType@125['R in kotlin.reflect.KMutableTopLevelExtensionProperty'] { @@ -210,15 +210,15 @@ DeserializedType@126['R in kotlin.reflect.KMutableTopLevelExtensionProperty'] { } DeserializedType@127['R in kotlin.reflect.KTopLevelExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@79 + constructor = AbstractLazyTypeParameterDescriptor$1@74 } DeserializedType@128['R in kotlin.reflect.KTopLevelExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@79 + constructor = AbstractLazyTypeParameterDescriptor$1@74 } DeserializedType@129['T in kotlin.reflect.KExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@108 + constructor = AbstractLazyTypeParameterDescriptor$1@103 } DeserializedType@130['T in kotlin.reflect.KMutableExtensionProperty'] { @@ -238,7 +238,7 @@ DeserializedType@133['T in kotlin.reflect.KMutableTopLevelExtensionProperty'] { } DeserializedType@134['T in kotlin.reflect.KTopLevelExtensionProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@103 + constructor = AbstractLazyTypeParameterDescriptor$1@108 } DeserializedType@135['V in kotlin'] { @@ -253,7 +253,7 @@ DeserializedType@137['V in kotlin'] { constructor = AbstractLazyTypeParameterDescriptor$1@116 } -DeserializedType@105['kotlin.Any'] { +DeserializedType@71['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@138 memberScope = DeserializedClassMemberScope@139 } @@ -263,26 +263,6 @@ DeserializedType@114['kotlin.Any'] { memberScope = DeserializedClassMemberScope@139 } -DeserializedType@76['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@138 - memberScope = DeserializedClassMemberScope@139 -} - -DeserializedType@140['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@138 - memberScope = DeserializedClassMemberScope@139 -} - -DeserializedType@85['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@138 - memberScope = DeserializedClassMemberScope@139 -} - -DeserializedType@81['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@138 - memberScope = DeserializedClassMemberScope@139 -} - DeserializedType@66['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@138 memberScope = DeserializedClassMemberScope@139 @@ -293,17 +273,37 @@ DeserializedType@100['kotlin.Any'] { memberScope = DeserializedClassMemberScope@139 } +DeserializedType@140['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@138 + memberScope = DeserializedClassMemberScope@139 +} + DeserializedType@118['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@138 memberScope = DeserializedClassMemberScope@139 } -DeserializedType@110['kotlin.Any'] { +DeserializedType@81['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@138 memberScope = DeserializedClassMemberScope@139 } -DeserializedType@71['kotlin.Any'] { +DeserializedType@85['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@138 + memberScope = DeserializedClassMemberScope@139 +} + +DeserializedType@105['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@138 + memberScope = DeserializedClassMemberScope@139 +} + +DeserializedType@76['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@138 + memberScope = DeserializedClassMemberScope@139 +} + +DeserializedType@110['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@138 memberScope = DeserializedClassMemberScope@139 } @@ -628,8 +628,8 @@ NestedClassDescriptors@296 { } TypeDeserializer@297 { - classDescriptors('129': Integer@298) = DeserializedClassDescriptor@299['MutableMap'] - classDescriptors('9': Integer@300) = DeserializedClassDescriptor@301['Any'] + classDescriptors('102': Integer@298) = DeserializedClassDescriptor@299['MutableMap'] + classDescriptors('2': Integer@300) = DeserializedClassDescriptor@301['Any'] } TypeDeserializer@302 { diff --git a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/memberFromTopLevel.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/memberFromTopLevel.lazy.log index 91cc2cb7f36..6cc92502472 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/memberFromTopLevel.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/memberFromTopLevel.lazy.log @@ -154,22 +154,12 @@ DeserializedType@86['V in kotlin'] { constructor = AbstractLazyTypeParameterDescriptor$1@73 } -DeserializedType@45['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@87 - memberScope = DeserializedClassMemberScope@88 -} - DeserializedType@71['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@87 memberScope = DeserializedClassMemberScope@88 } -DeserializedType@66['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@87 - memberScope = DeserializedClassMemberScope@88 -} - -DeserializedType@55['kotlin.Any'] { +DeserializedType@45['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@87 memberScope = DeserializedClassMemberScope@88 } @@ -179,7 +169,7 @@ DeserializedType@50['kotlin.Any'] { memberScope = DeserializedClassMemberScope@88 } -DeserializedType@75['kotlin.Any'] { +DeserializedType@66['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@87 memberScope = DeserializedClassMemberScope@88 } @@ -189,6 +179,16 @@ DeserializedType@89['kotlin.Any'] { memberScope = DeserializedClassMemberScope@88 } +DeserializedType@75['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@87 + memberScope = DeserializedClassMemberScope@88 +} + +DeserializedType@55['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@87 + memberScope = DeserializedClassMemberScope@88 +} + DeserializedType@90['kotlin.CharSequence'] { constructor = DeserializedClassTypeConstructor@91 } @@ -461,8 +461,8 @@ NestedClassDescriptors@209 { } TypeDeserializer@210 { - classDescriptors('129': Integer@211) = DeserializedClassDescriptor@212['MutableMap'] - classDescriptors('9': Integer@213) = DeserializedClassDescriptor@214['Any'] + classDescriptors('102': Integer@211) = DeserializedClassDescriptor@212['MutableMap'] + classDescriptors('2': Integer@213) = DeserializedClassDescriptor@214['Any'] } TypeDeserializer@215 { @@ -489,11 +489,11 @@ TypeDeserializer@222 { } TypeDeserializer@223 { - classDescriptors('40': Integer@224) = DeserializedClassDescriptor@225['CharSequence'] + classDescriptors('59': Integer@224) = DeserializedClassDescriptor@225['CharSequence'] } TypeDeserializer@226 { - classDescriptors('40': Integer@224) = DeserializedClassDescriptor@225['CharSequence'] + classDescriptors('59': Integer@224) = DeserializedClassDescriptor@225['CharSequence'] } TypeDeserializer@227 { diff --git a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/topLevelFromTopLevel.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/topLevelFromTopLevel.lazy.log index 8240fd6e844..6dd6fcb5390 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/topLevelFromTopLevel.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/callableReference/property/topLevelFromTopLevel.lazy.log @@ -179,27 +179,27 @@ DeserializedType@129['K in kotlin'] { } DeserializedType@130['R in kotlin.reflect.KMutableProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@109 + constructor = AbstractLazyTypeParameterDescriptor$1@121 } DeserializedType@131['R in kotlin.reflect.KMutableTopLevelProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@105 + constructor = AbstractLazyTypeParameterDescriptor$1@117 } DeserializedType@132['R in kotlin.reflect.KMutableTopLevelProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@105 + constructor = AbstractLazyTypeParameterDescriptor$1@117 } DeserializedType@133['R in kotlin.reflect.KMutableTopLevelVariable'] { - constructor = AbstractLazyTypeParameterDescriptor$1@121 + constructor = AbstractLazyTypeParameterDescriptor$1@113 } DeserializedType@134['R in kotlin.reflect.KMutableTopLevelVariable'] { - constructor = AbstractLazyTypeParameterDescriptor$1@121 + constructor = AbstractLazyTypeParameterDescriptor$1@113 } DeserializedType@135['R in kotlin.reflect.KMutableTopLevelVariable'] { - constructor = AbstractLazyTypeParameterDescriptor$1@121 + constructor = AbstractLazyTypeParameterDescriptor$1@113 } DeserializedType@136['R in kotlin.reflect.KMutableVariable'] { @@ -215,11 +215,11 @@ DeserializedType@138['R in kotlin.reflect.KMutableVariable'] { } DeserializedType@139['R in kotlin.reflect.KProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@117 + constructor = AbstractLazyTypeParameterDescriptor$1@109 } DeserializedType@140['R in kotlin.reflect.KTopLevelProperty'] { - constructor = AbstractLazyTypeParameterDescriptor$1@113 + constructor = AbstractLazyTypeParameterDescriptor$1@105 } DeserializedType@141['R in kotlin.reflect.KTopLevelVariable'] { @@ -250,61 +250,61 @@ DeserializedType@147['V in kotlin'] { constructor = AbstractLazyTypeParameterDescriptor$1@125 } -DeserializedType@85['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@115['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@90['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@123['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - DeserializedType@111['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@148 memberScope = DeserializedClassMemberScope@149 } -DeserializedType@150['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@107['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@95['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - -DeserializedType@100['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@148 - memberScope = DeserializedClassMemberScope@149 -} - DeserializedType@127['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@148 memberScope = DeserializedClassMemberScope@149 } +DeserializedType@100['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@150['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@95['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@107['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + DeserializedType@119['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@148 memberScope = DeserializedClassMemberScope@149 } +DeserializedType@123['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@115['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@85['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + +DeserializedType@90['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@148 + memberScope = DeserializedClassMemberScope@149 +} + DeserializedType@151['kotlin.MutableMap'] { constructor = DeserializedClassTypeConstructor@152 memberScope = SubstitutingScope@153 @@ -386,17 +386,17 @@ DeserializedType@192['kotlin.reflect.KVariable'] { } EnumEntryClassDescriptors@194 { - findEnumEntry('get': Name@195) = null - findEnumEntry('name': Name@196) = null - findEnumEntry('set': Name@197) = null -} - -EnumEntryClassDescriptors@198 { findEnumEntry('get': Name@23) = null findEnumEntry('name': Name@28) = null findEnumEntry('set': Name@26) = null } +EnumEntryClassDescriptors@195 { + findEnumEntry('get': Name@196) = null + findEnumEntry('name': Name@197) = null + findEnumEntry('set': Name@198) = null +} + LazyJavaPackageFragmentProvider@199 { packageFragments('': FqName@200) = LazyJavaPackageFragment@201[''] packageFragments('Int': FqName@202) = null @@ -639,14 +639,14 @@ NestedClassDescriptors@334 { } NestedClassDescriptors@335 { - findNestedClass('get': Name@195) = null - findNestedClass('name': Name@196) = null - findNestedClass('set': Name@197) = null + findNestedClass('get': Name@196) = null + findNestedClass('name': Name@197) = null + findNestedClass('set': Name@198) = null } TypeDeserializer@336 { - classDescriptors('129': Integer@337) = DeserializedClassDescriptor@338['MutableMap'] - classDescriptors('9': Integer@339) = DeserializedClassDescriptor@340['Any'] + classDescriptors('102': Integer@337) = DeserializedClassDescriptor@338['MutableMap'] + classDescriptors('2': Integer@339) = DeserializedClassDescriptor@340['Any'] } TypeDeserializer@341 { diff --git a/compiler/testData/diagnostics/testsWithStdLib/functionLiterals/pseudocodeMemoryOverhead.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/functionLiterals/pseudocodeMemoryOverhead.lazy.log index 3ee8a984d97..b1d85b976fb 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/functionLiterals/pseudocodeMemoryOverhead.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/functionLiterals/pseudocodeMemoryOverhead.lazy.log @@ -198,7 +198,22 @@ DeserializedType@108['java.util.HashMap'] { memberScope = SubstitutingScope@110 } -DeserializedType@50['kotlin.Any'] { +DeserializedType@54['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + +DeserializedType@71['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + +DeserializedType@113['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + +DeserializedType@59['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@111 memberScope = DeserializedClassMemberScope@112 } @@ -208,11 +223,26 @@ DeserializedType@83['kotlin.Any'] { memberScope = DeserializedClassMemberScope@112 } +DeserializedType@79['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + DeserializedType@67['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@111 memberScope = DeserializedClassMemberScope@112 } +DeserializedType@50['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + +DeserializedType@87['kotlin.Any'] { + constructor = DeserializedClassTypeConstructor@111 + memberScope = DeserializedClassMemberScope@112 +} + DeserializedType@91['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@111 memberScope = DeserializedClassMemberScope@112 @@ -223,42 +253,12 @@ DeserializedType@75['kotlin.Any'] { memberScope = DeserializedClassMemberScope@112 } -DeserializedType@113['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - -DeserializedType@71['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - -DeserializedType@87['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - -DeserializedType@63['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - DeserializedType@114['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@111 memberScope = DeserializedClassMemberScope@112 } -DeserializedType@59['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - -DeserializedType@79['kotlin.Any'] { - constructor = DeserializedClassTypeConstructor@111 - memberScope = DeserializedClassMemberScope@112 -} - -DeserializedType@54['kotlin.Any'] { +DeserializedType@63['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@111 memberScope = DeserializedClassMemberScope@112 } @@ -1205,26 +1205,26 @@ TypeDeserializer@431 { } TypeDeserializer@433 { - classDescriptors('2': Integer@434) = DeserializedClassDescriptor@435['Any'] - classDescriptors('5': Integer@436) = LazyJavaClassDescriptor@140['Serializable'] + classDescriptors('117': Integer@434) = DeserializedClassDescriptor@8['Pair'] + classDescriptors('118': Integer@435) = LazyJavaClassDescriptor@139['HashMap'] + classDescriptors('2': Integer@436) = DeserializedClassDescriptor@437['Any'] + classDescriptors('3': Integer@438) = DeserializedClassDescriptor@439['Array'] } -TypeDeserializer@437 { - classDescriptors('2': Integer@434) = DeserializedClassDescriptor@435['Any'] +TypeDeserializer@440 { + classDescriptors('117': Integer@434) = DeserializedClassDescriptor@8['Pair'] + classDescriptors('2': Integer@436) = DeserializedClassDescriptor@437['Any'] } -TypeDeserializer@438 { - classDescriptors('2': Integer@434) = DeserializedClassDescriptor@435['Any'] +TypeDeserializer@441 { + classDescriptors('2': Integer@436) = DeserializedClassDescriptor@437['Any'] + classDescriptors('5': Integer@442) = LazyJavaClassDescriptor@140['Serializable'] } -TypeDeserializer@439 { - classDescriptors('8': Integer@440) = DeserializedClassDescriptor@441['Array'] - classDescriptors('80': Integer@442) = DeserializedClassDescriptor@8['Pair'] - classDescriptors('81': Integer@443) = LazyJavaClassDescriptor@139['HashMap'] - classDescriptors('9': Integer@444) = DeserializedClassDescriptor@435['Any'] +TypeDeserializer@443 { + classDescriptors('2': Integer@436) = DeserializedClassDescriptor@437['Any'] } -TypeDeserializer@445 { - classDescriptors('80': Integer@442) = DeserializedClassDescriptor@8['Pair'] - classDescriptors('9': Integer@444) = DeserializedClassDescriptor@435['Any'] +TypeDeserializer@444 { + classDescriptors('2': Integer@436) = DeserializedClassDescriptor@437['Any'] } diff --git a/compiler/testData/diagnostics/testsWithStdLib/reified/reifiedNothingSubstitution.lazy.log b/compiler/testData/diagnostics/testsWithStdLib/reified/reifiedNothingSubstitution.lazy.log index 6a7bf0060a6..9b6b890ea3b 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/reified/reifiedNothingSubstitution.lazy.log +++ b/compiler/testData/diagnostics/testsWithStdLib/reified/reifiedNothingSubstitution.lazy.log @@ -31,7 +31,7 @@ DeserializedTypeParameterDescriptor@20['T'] { } DeserializedType@24['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@21 + constructor = AbstractLazyTypeParameterDescriptor$1@17 } DeserializedType@25['T in kotlin'] { @@ -39,7 +39,7 @@ DeserializedType@25['T in kotlin'] { } DeserializedType@26['T in kotlin'] { - constructor = AbstractLazyTypeParameterDescriptor$1@21 + constructor = AbstractLazyTypeParameterDescriptor$1@17 } DeserializedType@27['T in kotlin'] { @@ -51,12 +51,12 @@ DeserializedType@28['java.lang.Class'] { memberScope = SubstitutingScope@30 } -DeserializedType@23['kotlin.Any'] { +DeserializedType@19['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@31 memberScope = DeserializedClassMemberScope@32 } -DeserializedType@19['kotlin.Any'] { +DeserializedType@23['kotlin.Any'] { constructor = DeserializedClassTypeConstructor@31 memberScope = DeserializedClassMemberScope@32 } @@ -287,11 +287,11 @@ LazyJavaTypeParameterResolver@135 { } TypeDeserializer@137 { - classDescriptors('27': Integer@138) = LazyJavaClassDescriptor@42['Class'] - classDescriptors('9': Integer@139) = DeserializedClassDescriptor@140['Any'] + classDescriptors('2': Integer@138) = DeserializedClassDescriptor@139['Any'] + classDescriptors('3': Integer@140) = DeserializedClassDescriptor@141['Array'] } -TypeDeserializer@141 { - classDescriptors('8': Integer@142) = DeserializedClassDescriptor@143['Array'] - classDescriptors('9': Integer@139) = DeserializedClassDescriptor@140['Any'] +TypeDeserializer@142 { + classDescriptors('2': Integer@138) = DeserializedClassDescriptor@139['Any'] + classDescriptors('54': Integer@143) = LazyJavaClassDescriptor@42['Class'] } diff --git a/compiler/tests/org/jetbrains/jet/codegen/PackageGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/PackageGenTest.java index 5a55f45791c..95fabc853c8 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/PackageGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/PackageGenTest.java @@ -396,7 +396,7 @@ public class PackageGenTest extends CodegenTestCase { } public void testArraySize() throws Exception { - loadText("fun foo(a: Array) = a.size"); + loadText("fun foo(a: Array) = a.size()"); Method main = generateFunction(); Object[] args = new Object[] { new Integer[4] }; int result = (Integer) main.invoke(null, args); @@ -404,7 +404,7 @@ public class PackageGenTest extends CodegenTestCase { } public void testIntArraySize() throws Exception { - loadText("fun foo(a: IntArray) = a.size"); + loadText("fun foo(a: IntArray) = a.size()"); Method main = generateFunction(); Object[] args = new Object[] { new int[4] }; int result = (Integer) main.invoke(null, args); diff --git a/core/builtins/native/kotlin/Array.kt b/core/builtins/native/kotlin/Array.kt index 42b10ed4c94..17078e992f4 100644 --- a/core/builtins/native/kotlin/Array.kt +++ b/core/builtins/native/kotlin/Array.kt @@ -16,10 +16,12 @@ package kotlin -public class Array(public val size: Int, init: (Int) -> T) : Cloneable { +public class Array(size: Int, init: (Int) -> T) : Cloneable { public fun get(index: Int): T public fun set(index: Int, value: T): Unit + public fun size(): Int + public fun iterator(): Iterator public val indices: IntRange diff --git a/core/builtins/native/kotlin/Arrays.kt b/core/builtins/native/kotlin/Arrays.kt index 9c4604819a2..0b31e5a981a 100644 --- a/core/builtins/native/kotlin/Arrays.kt +++ b/core/builtins/native/kotlin/Arrays.kt @@ -18,10 +18,12 @@ package kotlin -public class ByteArray(public val size: Int) : Cloneable { +public class ByteArray(size: Int) : Cloneable { public fun get(index: Int): Byte public fun set(index: Int, value: Byte): Unit + public fun size(): Int + public fun iterator(): ByteIterator public val indices: IntRange @@ -29,10 +31,12 @@ public class ByteArray(public val size: Int) : Cloneable { public override fun clone(): ByteArray } -public class CharArray(public val size: Int) : Cloneable { +public class CharArray(size: Int) : Cloneable { public fun get(index: Int): Char public fun set(index: Int, value: Char): Unit + public fun size(): Int + public fun iterator(): CharIterator public val indices: IntRange @@ -40,10 +44,12 @@ public class CharArray(public val size: Int) : Cloneable { public override fun clone(): CharArray } -public class ShortArray(public val size: Int) : Cloneable { +public class ShortArray(size: Int) : Cloneable { public fun get(index: Int): Short public fun set(index: Int, value: Short): Unit + public fun size(): Int + public fun iterator(): ShortIterator public val indices: IntRange @@ -51,10 +57,12 @@ public class ShortArray(public val size: Int) : Cloneable { public override fun clone(): ShortArray } -public class IntArray(public val size: Int) : Cloneable { +public class IntArray(size: Int) : Cloneable { public fun get(index: Int): Int public fun set(index: Int, value: Int): Unit + public fun size(): Int + public fun iterator(): IntIterator public val indices: IntRange @@ -62,10 +70,12 @@ public class IntArray(public val size: Int) : Cloneable { public override fun clone(): IntArray } -public class LongArray(public val size: Int) : Cloneable { +public class LongArray(size: Int) : Cloneable { public fun get(index: Int): Long public fun set(index: Int, value: Long): Unit + public fun size(): Int + public fun iterator(): LongIterator public val indices: IntRange @@ -73,10 +83,12 @@ public class LongArray(public val size: Int) : Cloneable { public override fun clone(): LongArray } -public class FloatArray(public val size: Int) : Cloneable { +public class FloatArray(size: Int) : Cloneable { public fun get(index: Int): Float public fun set(index: Int, value: Float): Unit + public fun size(): Int + public fun iterator(): FloatIterator public val indices: IntRange @@ -84,10 +96,12 @@ public class FloatArray(public val size: Int) : Cloneable { public override fun clone(): FloatArray } -public class DoubleArray(public val size: Int) : Cloneable { +public class DoubleArray(size: Int) : Cloneable { public fun get(index: Int): Double public fun set(index: Int, value: Double): Unit + public fun size(): Int + public fun iterator(): DoubleIterator public val indices: IntRange @@ -95,10 +109,12 @@ public class DoubleArray(public val size: Int) : Cloneable { public override fun clone(): DoubleArray } -public class BooleanArray(public val size: Int) : Cloneable { +public class BooleanArray(size: Int) : Cloneable { public fun get(index: Int): Boolean public fun set(index: Int, value: Boolean): Unit + public fun size(): Int + public fun iterator(): BooleanIterator public val indices: IntRange diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt index acf8b1eb01b..6849a271459 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt @@ -48,7 +48,7 @@ fun foreignKotlinClass(jClass: Class): KClassImpl { // This is the most unlikely case: we found a cached array of references of length at least 2 (can't be 1 because // the single element would be cached instead), and none of those classes is the one we're looking for - val size = cached.size + val size = cached.size() // Don't use Array constructor because it creates a lambda val newArray = arrayOfNulls>>(size + 1) // Don't use Arrays.copyOf because it works reflectively diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt b/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt index e3cfcb19238..56eaf61430e 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt +++ b/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt @@ -18,7 +18,7 @@ package kotlin.jvm.internal private class ArrayIterator(val array: Array) : Iterator { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun next() = array[index++] } diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt b/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt index 47ff83c2532..60d4dc089d0 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt +++ b/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt @@ -20,49 +20,49 @@ package kotlin.jvm.internal private class ArrayByteIterator(private val array: ByteArray) : ByteIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextByte() = array[index++] } private class ArrayCharIterator(private val array: CharArray) : CharIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextChar() = array[index++] } private class ArrayShortIterator(private val array: ShortArray) : ShortIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextShort() = array[index++] } private class ArrayIntIterator(private val array: IntArray) : IntIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextInt() = array[index++] } private class ArrayLongIterator(private val array: LongArray) : LongIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextLong() = array[index++] } private class ArrayFloatIterator(private val array: FloatArray) : FloatIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextFloat() = array[index++] } private class ArrayDoubleIterator(private val array: DoubleArray) : DoubleIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextDouble() = array[index++] } private class ArrayBooleanIterator(private val array: BooleanArray) : BooleanIterator() { private var index = 0 - override fun hasNext() = index < array.size + override fun hasNext() = index < array.size() override fun nextBoolean() = array[index++] } diff --git a/generators/src/org/jetbrains/jet/generators/builtins/arrayIterators.kt b/generators/src/org/jetbrains/jet/generators/builtins/arrayIterators.kt index ddabcfdccdd..8e226f77a4c 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/arrayIterators.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/arrayIterators.kt @@ -28,7 +28,7 @@ class GenerateArrayIterators(out: PrintWriter) : BuiltInsSourceGenerator(out) { val s = kind.capitalized out.println("private class Array${s}Iterator(private val array: ${s}Array) : ${s}Iterator() {") out.println(" private var index = 0") - out.println(" override fun hasNext() = index < array.size") + out.println(" override fun hasNext() = index < array.size()") out.println(" override fun next$s() = array[index++]") out.println("}") out.println() diff --git a/generators/src/org/jetbrains/jet/generators/builtins/arrays.kt b/generators/src/org/jetbrains/jet/generators/builtins/arrays.kt index 9ac46f55810..1669d218cb4 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/arrays.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/arrays.kt @@ -26,10 +26,12 @@ class GenerateArrays(out: PrintWriter) : BuiltInsSourceGenerator(out) { override fun generateBody() { for (kind in PrimitiveType.values()) { val s = kind.capitalized - out.println("public class ${s}Array(public val size: Int) : Cloneable {") + out.println("public class ${s}Array(size: Int) : Cloneable {") out.println(" public fun get(index: Int): $s") out.println(" public fun set(index: Int, value: $s): Unit") out.println() + out.println(" public fun size(): Int") + out.println() out.println(" public fun iterator(): ${s}Iterator") out.println() out.println(" public val indices: IntRange") diff --git a/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt b/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt index 7eb8aaf1983..e3ea2cf2faa 100644 --- a/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt +++ b/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt @@ -1,3 +1,3 @@ fun main() { - val bar: (Array) -> Int = {(arr): Int -> arr.size} + val bar: (Array) -> Int = {(arr): Int -> arr.size()} } diff --git a/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt.after b/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt.after index ee4ad36e41b..47d116f73c3 100644 --- a/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt.after +++ b/idea/testData/intentions/makeTypeExplicitInLambda/returnDeclaredParamNotDeclared.kt.after @@ -1,3 +1,3 @@ fun main() { - val bar: (Array) -> Int = {(arr: Array): Int -> arr.size} + val bar: (Array) -> Int = {(arr: Array): Int -> arr.size()} } diff --git a/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt b/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt index 7eb8aaf1983..e3ea2cf2faa 100644 --- a/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt +++ b/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt @@ -1,3 +1,3 @@ fun main() { - val bar: (Array) -> Int = {(arr): Int -> arr.size} + val bar: (Array) -> Int = {(arr): Int -> arr.size()} } diff --git a/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt.after b/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt.after index 74fac9eb76e..ade25630210 100644 --- a/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt.after +++ b/idea/testData/intentions/makeTypeImplicitInLambda/returnDeclaredParamNotDeclared.kt.after @@ -1,3 +1,3 @@ fun main() { - val bar: (Array) -> Int = { arr -> arr.size} + val bar: (Array) -> Int = { arr -> arr.size()} } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/intrinsic/functions/factories/ArrayFIF.java b/js/js.translator/src/org/jetbrains/k2js/translate/intrinsic/functions/factories/ArrayFIF.java index 9ca26036c56..64669189d15 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/intrinsic/functions/factories/ArrayFIF.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/intrinsic/functions/factories/ArrayFIF.java @@ -137,7 +137,7 @@ public final class ArrayFIF extends CompositeFIF { private ArrayFIF() { add(pattern(ARRAYS, "get"), GET_INTRINSIC); add(pattern(ARRAYS, "set"), SET_INTRINSIC); - add(pattern(ARRAYS, ""), LENGTH_PROPERTY_INTRINSIC); + add(pattern(ARRAYS, "size"), LENGTH_PROPERTY_INTRINSIC); add(pattern(ARRAYS, ""), new KotlinFunctionIntrinsic("arrayIndices")); add(pattern(ARRAYS, "iterator"), new KotlinFunctionIntrinsic("arrayIterator")); add(pattern(ARRAY, ""), new KotlinFunctionIntrinsic("arrayFromFun")); diff --git a/libraries/stdlib/src/kotlin/Deprecated.kt b/libraries/stdlib/src/kotlin/Deprecated.kt index 051534570af..fa84bdaa9a6 100644 --- a/libraries/stdlib/src/kotlin/Deprecated.kt +++ b/libraries/stdlib/src/kotlin/Deprecated.kt @@ -51,3 +51,31 @@ public fun Iterable.containsItem(item : T) : Boolean = contains(item) deprecated("Use sortBy() instead") public fun Iterable.sort(comparator: java.util.Comparator) : List = sortBy(comparator) + + +deprecated("Use size() instead") +public val Array<*>.size: Int get() = size() + +deprecated("Use size() instead") +public val ByteArray.size: Int get() = size() + +deprecated("Use size() instead") +public val CharArray.size: Int get() = size() + +deprecated("Use size() instead") +public val ShortArray.size: Int get() = size() + +deprecated("Use size() instead") +public val IntArray.size: Int get() = size() + +deprecated("Use size() instead") +public val LongArray.size: Int get() = size() + +deprecated("Use size() instead") +public val FloatArray.size: Int get() = size() + +deprecated("Use size() instead") +public val DoubleArray.size: Int get() = size() + +deprecated("Use size() instead") +public val BooleanArray.size: Int get() = size()