- PackageLocalClassNotImportedWithDefaultImport.kt goes to codegen multi-file
tests. File in java.lang moved to kotlin.jvm, which seems irrelevant to the
test, because java.lang is prohibited by the VM
- MergePackagesWithJava.kt (KT-689, Java and Kotlin in the same package) and
kt955.kt (Unable to import from default package) are considered too obsolete
to even test and are thus deleted
Also check that there's no more than 1000 lines in the .txt file in diagnostic
tests.
This allows to fix some cases when there is a difference between explicit and short reference to default object
Fix shorten reference, optimize imports and import insert helper for default objects
ShortenReferences always transforms default object references to shorter form for now
Fix DescriptorUtils#getFqName() for default objects (affects test data mostly)
Fix DescriptorUtils#getImportableDescriptor()
Allow importing classes from object, prohibit import-on-demand from objects
It's unclear what import-on-demand from object should mean so we prohibit it for now
CapturedType captures type projection while solving the constraint system.
During the substitution type containing captured types is approximated
to get rid of captured types and (for simple cases) replace them with corresponding type projections.
Note that Array<Array< CapturedType(out Int) >> is (over)approximated by Array<out<Array<out Int>>
See 'Mixed-site variance' by Ross Tate for details.
#KT-2570 Fixed
#KT-2872 Fixed
#KT-3213 Fixed
This is done primarily for JVM interoperability, otherwise it's impossible to
inherit from CharSequence there. On JS subSequence at the moment just invokes
substring.
#KT-5956 Fixed
This is done for JVM interoperability. There's still a member function
String.get() and an extension function "get" on CharSequence
#KT-1730 Fixed
#KT-5389 Fixed
And String.length as well.
This is done for JVM interoperability: java.lang.CharSequence is an open class
and has a function 'length()' which should be implemented in subclasses
somehow.
A minor unexpected effect of this is that String.length() is now a compile-time
constant (it wasn't such as a property because properties are not supported in
compile-time constant evaluation)
#KT-3571 Fixed
This is safe because initializers for extension properties are forbidden
anyway, we'll just won't be generating noisy error messages about non-existent
'this'