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
Michael Bogdanov
5412a67d29
Generate static backing fields for properties in object
...
#KT-4973 Fixed
2014-11-20 10:20:31 +03:00
Tal Man
aeb5bae556
Refactoring of CompileTimeConstant, introduce flag to represent a constant being referenced by a variable
2014-04-09 14:47:05 -04:00
Natalia Ukhorskaya
4a8bcc614a
Resolve compileTimeInitializer for variable in lazy resolve
2014-03-13 10:07:18 +04:00
Natalia Ukhorskaya
89d99d2848
Remove toInt() from rendering IntValue
2014-03-13 10:07:17 +04:00
Natalia Ukhorskaya
df3ed5059c
StorageManager for compile-time initializer
2014-03-13 10:07:12 +04:00
Natalia Ukhorskaya
9672026a53
Add a superclass for byte, short, int, long compile-time constants
2014-03-13 10:07:01 +04:00
Natalia Ukhorskaya
36810c5bbb
Move IS_PURE for constant inside CompileTimeConstant
2014-01-28 18:21:45 +04:00
Natalia Ukhorskaya
97da2def08
Record COMPILE_TIME_INITIALIZER for all final variables
2014-01-28 18:21:42 +04:00
Natalia Ukhorskaya
2ddda59465
Add tests for concatenation of strings
2014-01-28 18:21:41 +04:00
Natalia Ukhorskaya
cf5dc5b98b
Fix EvaluateTests for strings
2014-01-28 18:21:41 +04:00
Natalia Ukhorskaya
73de3ae9ab
Catch exceptions evaluating expression
2014-01-28 18:21:40 +04:00
Natalia Ukhorskaya
4329c42e3f
Make unary minus and unary plus return int for byte and short
2013-12-23 13:46:00 +04:00
Natalia Ukhorskaya
27e602133d
Small fixes after review: do not set is_pure=true for named constants refactoring
2013-12-05 15:23:41 +04:00
Natalia Ukhorskaya
e5a3518248
Parse longs with 'L' suffix. Report error if 'l' used.
2013-12-05 15:23:40 +04:00
Natalia Ukhorskaya
b6ce6c5e5a
Parse floats with 'F' or 'f' suffix
2013-12-05 15:22:01 +04:00
Natalia Ukhorskaya
fb9a7e3c4c
Create error value for division by zero
2013-12-05 15:22:00 +04:00
Natalia Ukhorskaya
2a023c16a9
Use type from compile time value for prefix expression
2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya
9c176ddaa8
Warning for integer overflow
2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya
d63f6843c8
Merge ConstantExpressionEvaluator and CompileTimeConstantResolver
2013-12-05 15:21:50 +04:00
Natalia Ukhorskaya
e6923ba29e
create StringValue only for primitive compile time values
2013-12-05 15:20:23 +04:00