- Cloneable is a trait with a single protected member 'clone', which is mapped
to java.lang.Cloneable on JVM
- 'clone' is non-abstract to be able to call 'super.clone()' in the
implementations. Also if you need your class to be Cloneable, most of the
time inheriting from Cloneable and calling 'super.clone()' will work
- hack 'super.clone()' in JVM intrinsics and TImpl delegation generation
- make arrays Cloneable, handle 'clone()' calls in the intrinsic
#KT-4890 Fixed
- change NAMED to be Renderer<Named> and render Named's name. It was used in
multiple places with arbitrary arguments, not only Named: change renderers in
those places to TO_STRING
- add STRING, which is Renderer<String> and renders string itself. Change all
places where strings were used with either TO_STRING or NAMED to STRING
- change NOT_AN_ANNOTATION_CLASS diagnostic to be reported on descriptor, not
any string
- change "unused variable/parameter" diagnostics to be reported on
VariableDescriptor, not Object
- the member and the container were mixed up
- don't output "defined in" part of the message, because we tell later where
it's already defined in
- fix an instability of the diagnostic order in OverloadResolver by using
LinkedHashSet
added status 'hasViolatedUpperBound'
class TypeConstraintsImpl now stores constraint position for each constraint,
so we can filter out bound constraints and find out if the system is successful without them
Also the diagnostic error message reported the wrong nested class name: it
should be the nested class in the hierarchy which is static, not the class of
the scope where we're checking the accessibility