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
This commit is contained in:
Alexander Udalov
2014-11-14 18:02:04 +03:00
parent bc238d5f4c
commit 128c938965
67 changed files with 677 additions and 625 deletions
@@ -5,4 +5,4 @@ package java
val c : lang.Class<*>? = null
val <T> Array<T>?.length : Int get() = if (this != null) <!DEBUG_INFO_SMARTCAST!>this<!>.size else throw NullPointerException()
val <T> Array<T>?.length : Int get() = if (this != null) <!DEBUG_INFO_SMARTCAST!>this<!>.size() else throw NullPointerException()
@@ -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']
}
@@ -4,6 +4,6 @@ fun main(args : Array<String>) {
var ints : Array<Int?> = arrayOfNulls<Int>(31)
ints[0] = 4; ints[11] = 5; ints[2] =7
for(i in 0..ints.size)
for(i in 0..ints.size())
ints[i<!SYNTAX!><!>
}
@@ -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
}
@@ -2,9 +2,9 @@ package c
import java.util.ArrayList
fun Array<Int>.toIntArray(): IntArray = this.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>mapTo<!>(IntArray(size), {it})
fun Array<Int>.toIntArray(): IntArray = this.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>mapTo<!>(IntArray(size()), {it})
fun Array<Int>.toArrayList(): ArrayList<Int> = this.mapTo(ArrayList<Int>(size), {it})
fun Array<Int>.toArrayList(): ArrayList<Int> = this.mapTo(ArrayList<Int>(size()), {it})
public fun <T, R, C: MutableCollection<in R>> Array<out T>.mapTo(result: C, transform : (T) -> R) : C =
throw Exception("$result $transform")
@@ -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<E>'] {
LazyJavaClassifierType@32['List<E>'] {
classifier = JavaClassImpl@99['List']
typeConstructor = DeserializedClassTypeConstructor@100
}
LazyJavaClassifierType@32['List<E>'] {
LazyJavaClassifierType@37['List<E>'] {
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']
}
@@ -20,7 +20,7 @@ fun test() {
// ---------------------
// copy from kotlin util
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size()))
fun <T, C: MutableCollection<in T>> Array<T>.toCollection(result: C) : C {
for (element in this) result.add(element)
@@ -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']
}
@@ -23,7 +23,7 @@ fun test() {
//------------
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size()))
fun <T, R> Collection<T>.map(transform : (T) -> R) : List<R> {
return mapTo(java.util.ArrayList<R>(this.size), transform)
@@ -25,7 +25,7 @@ fun testSomeFunction() {
fun assertEquals(<!UNUSED_PARAMETER!>expected<!>: Any?, <!UNUSED_PARAMETER!>actual<!>: Any?, <!UNUSED_PARAMETER!>message<!>: String = "") {
}
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size()))
fun <T, C: MutableCollection<in T>> Array<T>.toCollection(result: C) : C {
for (element in this) result.add(element)
@@ -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<E>'] {
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<E>'] {
arguments = ArrayList@157[1] { TypeProjectionImpl@158 }
classifier = JavaClassImpl@159['List']
memberScope = SubstitutingScope@160
typeConstructor = DeserializedClassTypeConstructor@161
}
LazyJavaClassifierType@57['List<E>'] {
LazyJavaClassifierType@52['List<E>'] {
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
}
+2 -2
View File
@@ -1,3 +1,3 @@
fun f(c: Array<Int>): Int {
return c.<!FUNCTION_EXPECTED!>size<!>()
fun f(c: String): Int {
return c.<!FUNCTION_EXPECTED!>length<!>()
}
@@ -1,26 +1,26 @@
LazyJavaPackageFragmentProvider@0 {
packageFragments('<root>': FqName@1) = LazyJavaPackageFragment@2['<root>']
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['<root>'] {
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
}
@@ -1,3 +1,3 @@
package
package
internal fun f(/*0*/ c: kotlin.Array<kotlin.Int>): kotlin.Int
internal fun f(/*0*/ c: kotlin.String): kotlin.Int
@@ -1,7 +1,7 @@
// KT-312 Nullability problem when a nullable version of a generic type is returned
fun <T> Array<out T>.safeGet(index : Int) : T<!BASE_WITH_NULLABLE_UPPER_BOUND!>?<!> {
return if (index < size) this[index] else null
return if (index < size()) this[index] else null
}
val args : Array<String> = Array<String>(1, {""})
@@ -41,6 +41,7 @@ LazyJavaPackageFragment@3['<root>'] {
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
}
@@ -17,5 +17,5 @@ fun main() {
}
}
fun <T> Array<T>.lastIndex() = size - 1
val <T> Array<T>.lastIndex : Int get() = size - 1
fun <T> Array<T>.lastIndex() = size() - 1
val <T> Array<T>.lastIndex : Int get() = size() - 1
@@ -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<E>'] {
LazyJavaClassifierType@60['List<E>'] {
arguments = ArrayList@160[1] { TypeProjectionImpl@161 }
classifier = JavaClassImpl@162['List']
memberScope = SubstitutingScope@163
typeConstructor = DeserializedClassTypeConstructor@164
}
LazyJavaClassifierType@60['List<E>'] {
LazyJavaClassifierType@55['List<E>'] {
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
}