Jiaxiang
05/12/2021, 11:59 PMSequence
for a bunch of APIs
◦ Some of the API return type has been changed from Collection
or List
to Sequence
, which will allow performance improvement if you use case involved early termination.
◦ Note that because Sequence
is lazily evaluated, it requires a terminal operation to make actual compute happen. Please check you uses around the impacted APIs to see if they have a terminal operation. Most common use case is Collection.map{}
which will iterate through the collection by itself, but is non-terminal for Sequence
and should be companied with toList()
or replaced with forEach
◦ For the whole list of APIs impacted by this change, please refer to this commit.
• Origin for KS symbols from binaries is now split into KOTLIN_LIB
and JAVA_LIB
.yigit
05/13/2021, 12:01 AMJiaxiang
05/13/2021, 12:02 AMyigit
05/18/2021, 12:50 AMTing-Yuan Huang
05/18/2021, 9:48 PMresolveUtil.kt
, getter != null -> false
looks weird to me; A backing field can be used in a getter, right?fun foo() = 1
val x: Int = foo()
get() = field
fails the hasBackingField
DeserializedPropertyDescriptor
is created with backingField always set; The information is lost.yigit
05/18/2021, 11:29 PMTing-Yuan Huang
05/19/2021, 1:39 AMyigit
05/19/2021, 3:00 AMTing-Yuan Huang
05/24/2021, 5:28 PMyigit
05/24/2021, 5:29 PMfun PropertyDescriptor.hasBackingField(bindingContext: BindingContext?): Boolean = when {
kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE -> overriddenDescriptors.any { it.hasBackingField(bindingContext) }
Ting-Yuan Huang
05/24/2021, 5:32 PMyigit
05/24/2021, 5:33 PM