Commit Graph

394 Commits

Author SHA1 Message Date
Alexander Udalov 11ff051924 Regenerate built-ins, keywords, operations map 2015-01-03 00:19:03 +03:00
Ilya Ryzhenkov 47da114599 Document String built-in class. 2014-12-16 17:33:25 +03:00
Denis Zharkov d345ba05dd Added inline function "Array" into stdlib
It has the same signature and semantics as Array constructor had
Also made Array constructor private and accepting no arguments
2014-12-11 16:04:03 +03:00
Alexander Udalov 8dae1b62dd Add CharSequence.subSequence
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
2014-11-27 20:38:19 +03:00
Alexander Udalov 4d95bcfc7e Rename CharSequence.get to charAt
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
2014-11-27 20:38:18 +03:00
Alexander Udalov a7b88e9485 Make CharSequence.length a function instead of property
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
2014-11-27 20:38:17 +03:00
Alexander Udalov 93696ff9bd Make Array.indices extension property, move to stdlib
This is not something that needs to be intrinsified. Note that compiler
optimizations are still possible and the fact whether 'indices' is a member or
an extension is irrelevant to the optimizer
2014-11-17 15:20:44 +03:00
Alexander Udalov 128c938965 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
2014-11-17 15:02:38 +03:00
Denis Zharkov 8d47bdfebb Made <T> in arrayOfNulls() reified #KT-5651 Fixed 2014-11-13 20:56:10 +03:00
Alexander Udalov 685a1c38e2 Fix indent in built-in sources 2014-10-27 17:17:26 +03:00
Alexander Udalov 624e507ec2 Make enum classes comparable
#KT-3727 Fixed
2014-10-17 21:27:23 +04:00
Alexander Udalov 02861308bc Add toString() to kotlin.Enum
Overridable because it is in java.lang.Enum
2014-10-17 21:27:23 +04:00
Alexander Udalov 66a7a58313 Prohibit to override equals/hashCode in enums
#KT-5721 Fixed
2014-10-17 21:27:22 +04:00
Michael Bogdanov 08e02f4176 Moving platformStatic annotation to kotlin.platform package 2014-09-10 17:35:59 +04:00
Michael Bogdanov 7bbedd9685 Added platformStatic annotation 2014-09-09 16:26:15 +04:00
Alexander Udalov 133b2918e1 Drop a hack which allowed to make Unit an object 2014-07-25 21:45:15 +04:00
Alexander Udalov fb958897a9 Introduce kotlin.Cloneable
- 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
2014-07-25 21:19:39 +04:00
Zalim Bashorov 4514792104 Unit as object 2014-07-25 17:16:40 +04:00
Zalim Bashorov 9b36327046 Builtins: make Unit class to avoid binary compatibility problems. 2014-07-11 20:25:23 +04:00
Zalim Bashorov 3ef624f121 Builtins: made Unit object. 2014-07-10 17:25:42 +04:00
Michael Bogdanov da01a11137 New diagnostic for non-local return annotation 2014-07-07 10:51:46 +04:00
Andrey Breslav 98e87f2f95 Removing unneeded "public override val" from constructors across the project
#KT-4295 Fixed
2014-07-05 18:31:55 +04:00
Alexander Udalov ad23a2d05b Fix equals and hashCode for empty ranges and progressions
Empty range is equal to any other empty range
2014-06-18 20:35:25 +04:00
Alexander Udalov 751f062f23 Add *Range.isEmpty(), *Progression.isEmpty() 2014-06-18 20:22:24 +04:00
Alexander Udalov c7a7f31e82 Introduce module 'reflection', move KFunctionN to it
Metadata for KFunction classes is now longer serialized along with built-in
classes. This effectively means that it's no longer possible to find KFunction
classes via dependency on built-ins. There should be a kotlin-runtime library
in the specified classpath for reflection types to be resolvable.

A lot of tests were moved and changed, because tests on callable references
require stdlib in classpath from now on
2014-05-19 19:50:57 +04:00
Alexander Udalov 406855467c Revert temporary type adjustments on builtins
These were made during migration of builtins from package "jet" to "kotlin"
2014-03-02 21:38:57 +04:00
Alexander Udalov 8762a02844 Add/update copyrights in built-ins sources 2014-03-02 19:55:29 +04:00
Alexander Udalov d5e2c4ad4c Generate built-in sources of arrays
Extract Array class into a separate file, move arrayOfNulls to Library.kt, fix
formatting and generate Arrays.kt
2014-03-02 19:55:27 +04:00
Alexander Udalov 6e23af2ba3 Split Library.kt into several files
For better readbility and discoverability. Also rename String.compareTo
parameter to "other", since that is the name of parameter of other compareTo's
2014-03-02 19:55:27 +04:00
Alexander Udalov 11cc7f46f4 Remove "Iterator.iterator()" intrinsic, add stdlib function 2014-03-02 19:55:24 +04:00
Alexander Udalov d9029917eb Move built-ins from package "jet" to "kotlin"
#KT-2896 Fixed
2014-03-02 19:55:20 +04:00
Alexander Udalov 0490d4c989 Rewrite ProgressionUtil to Kotlin, move to "kotlin.internal"
Use reflection in ProgressionUtilTest instead of calling methods on the class
from the class path, because in the latter case we were just testing
ProgressionUtil from bootstrap runtime (which, presumably, always works
correctly since it's a bootstrap distribution)

With this change, compilable built-ins (under core/builtins/src) are fully
written in Kotlin
2014-03-02 19:54:59 +04:00
Alexander Udalov b68e47f705 Move JVM-specific annotations out of built-ins
Move 'volatile' and 'synchronized' to package 'kotlin' in stdlib. Also delete
'atomic', since its support was never implemented
2014-03-02 19:54:55 +04:00
Alexander Udalov 3dcd85bdb4 Add toString() to Any, fix all tests
#KT-4517 Fixed
2014-03-02 19:54:49 +04:00
Alexander Udalov ec30d52978 Delete Hashable, pull up its members to Any
Extensions on nullable types remain in Library.kt

 #KT-1741 Obsolete
 #KT-2805 Obsolete
 #KT-1365 Fixed
 #KT-4517 In Progress
2014-03-02 19:54:08 +04:00
Alexander Udalov 33ffd3dfca Add explicit Unit type to declarations of built-ins 2014-02-24 21:44:10 +04:00
Alexander Udalov 8c97d9ebb3 Fix rangeTo between Float and Long
Float.rangeTo(Long) and Long.rangeTo(Float) now both return FloatRange for
consistency with other binary operations between floats and longs which, in
turn, return float to be consistent with Java
2014-02-19 17:46:18 +04:00
Alexander Udalov c39338798b Delete outdated hack in Unit 2014-01-31 16:46:18 +04:00
Alexander Udalov 1538191c66 Fix variance in Progression and Range 2014-01-31 16:46:17 +04:00
Alexander Udalov 1c9d614137 Add copyright and auto-generation notice to built-in sources 2014-01-31 16:46:17 +04:00
Alexander Udalov 11c023cfb2 Unmark source roots in 'builtins' and 'runtime.jvm'
This is needed because until we have modules and dependencies implemented in
our IDEA plugin, the whole project always is analyzed to highlight any file in
the project. This resulted in weird errors in different modules in Kotlin
project because two declarations were found for each built-in class: the one in
kotlin-runtime.jar and the one (totally unrelated) in the 'builtins' module
2014-01-27 20:36:08 +04:00
Alexander Udalov 61ad9fba4a Remove duplicated sources of built-ins
BuiltInsSerializer now serializes built-ins found in two source roots:
core/builtins/native and core/builtins/src

Add return types to some declarations in core/builtins/src, because now that
BuiltInsSerializer processes them, it launches lazy resolution which can't
always deduce the return type
2014-01-27 18:33:48 +04:00
Alexander Udalov 3b4c341046 Generate Kotlin sources of progression iterators 2014-01-27 18:33:48 +04:00
Alexander Udalov dc66561ca5 Create module 'builtins', move 'runtime' -> 'runtime.jvm'
'builtins' will be used for platform-independent core built-in definitions,
'runtime.jvm' for things that should be present at runtime in order for Kotlin
code to execute correctly on JVM

ProgressionUtil goes to 'builtins' right now because progression iterators
depend on it, but should be rewritten to Kotlin later
2014-01-27 18:33:47 +04:00