Commit Graph

2333 Commits

Author SHA1 Message Date
Natalia Ukhorskaya 785f7e749f InlineCodegen: find virtual file using findVirtualFileWithHeader 2015-03-30 14:03:24 +03:00
Dmitry Jemerov 1e536af87e correctly calculate the number of mask arguments required for a method with default arguments
#KT-6816 Fixed
2015-03-27 18:51:07 +01:00
Denis Zharkov 01e5ee718f Allow secondary constructors without body
#KT-6967 Fixed
2015-03-27 16:09:40 +03:00
Dmitry Jemerov 827d9d48c1 Correctly apply SAM conversions in superclass constructor calls
#KT-5452 Fixed
2015-03-26 19:03:42 +01:00
Dmitry Jemerov bb1410b20a generate more correct bytecode for casting Unit to other types 2015-03-25 17:51:04 +01:00
Pavel V. Talanov 9d618ca767 Replace OBJECT$ usages in code and test data 2015-03-25 18:28:01 +03:00
Pavel V. Talanov ed218c473a Get rid of 'class object' usages in code and builtins
Replace some comments and library usages as well
2015-03-25 18:28:00 +03:00
Dmitry Jemerov 2767e789fb when generating coercion, take into account the original type of the expression 2015-03-24 18:01:56 +01:00
Alexander Udalov 9a041136f2 Make ClassId's relative class name FqName instead of FqNameUnsafe
It was FqNameUnsafe in times when there were classes without identifier names,
specifically class objects with names like '<class-object-for-...>'
2015-03-23 16:30:25 +03:00
Denis Zharkov eefea26d54 Recovery for initializer if no LBRACE
- If no LBRACE after 'init' keyword parse initializer without body
- Made getBody() nullable, appropriate checks added
2015-03-18 19:59:25 +03:00
Michael Bogdanov ed62e4972f Temporary disable smap generation 2015-03-18 19:00:24 +03:00
Michael Bogdanov 6e55ea6480 Skip smap generation if there is no source information
#KT-7022 Fixed
2015-03-18 18:49:18 +03:00
Denis Zharkov c6290efbe2 Fix origin of secondary constructors 2015-03-18 10:56:28 +03:00
Michael Bogdanov d765d899a7 Fix NPE with origin calculation 2015-03-18 09:22:56 +03:00
Pavel V. Talanov 06916d98c6 default -> companion: replace all mentions of default and default object 2015-03-17 15:47:39 +03:00
Pavel V. Talanov 2a6facaef6 default -> companion: default object -> class object in project code, builtins and libs code 2015-03-17 15:46:48 +03:00
Alexander Udalov 094fa2f92b Report error on using reflection without kotlin-reflect.jar in classpath
Should be a warning because strictly speaking, the codegen doesn't need it
during the compilation. It's an error at the moment only to let all clients of
Kotlin reflection know that they must include kotlin-reflect.jar in the
classpath
2015-03-16 20:40:49 +03:00
Michael Bogdanov 7d743f56ce Rollback default object to class one 2015-03-16 18:52:05 +03:00
Michael Bogdanov 90651e4b28 Do nothing if there is no smap data on anonymous object transfromation during fun inline 2015-03-16 18:52:05 +03:00
Michael Bogdanov 596c5b8d41 Remove lineNumber assertion: it performed in getOrCreateSourceMapper 2015-03-16 18:52:04 +03:00
Michael Bogdanov ac8e98572e Clean code 2015-03-16 18:52:04 +03:00
Michael Bogdanov 57cf4ac6c0 New test framework 2015-03-16 18:52:04 +03:00
Michael Bogdanov 50c9c93f37 Generate additional NOP in inline call to keep linenumbers 2015-03-16 18:52:03 +03:00
Michael Bogdanov bc2261ea3b Added message for assertion 2015-03-16 18:52:02 +03:00
Michael Bogdanov d5f19eaee4 Fix InsStream 2015-03-16 18:52:01 +03:00
Michael Bogdanov a4117360a2 Smap refactorings 2015-03-16 18:52:01 +03:00
Michael Bogdanov 52999afc4a FqName to ClassId 2015-03-16 18:52:00 +03:00
Michael Bogdanov a7183f6e53 Source mapping generation on code compilation 2015-03-16 18:52:00 +03:00
Michael Bogdanov 99aa57b432 Visit debug info for compiled inline functions 2015-03-16 18:52:00 +03:00
Pavel V. Talanov 188ada2089 Minor: extract ClassDescriptor.secondaryConstructors extension property 2015-03-13 20:17:01 +03:00
Yan Zhulanow 7b39cf4998 Support cache cleanup in android-compiler-plugin 2015-03-13 15:46:43 +03:00
Yan Zhulanow 93ce3bc2ad Pass GenerationState to generateClassSyntheticParts as it's more useful 2015-03-13 15:46:42 +03:00
Alexander Udalov 8af6ca5279 Delete kotlin.jvm.internal.KObject
It was supposed to be used in reflection but the benefits do not outweigh the
cost of KT-6951

 #KT-3223 Fixed
 #KT-6951 Fixed
2015-03-12 23:15:38 +03:00
Stanislav Erokhin 6fb8af1dda Move util backend function isNamedFun && isNamedFunOrLambda to frontend 2015-03-12 17:11:47 +03:00
Stanislav Erokhin fa9ca54e78 Fixed local return inside function expression. 2015-03-12 17:11:47 +03:00
Stanislav Erokhin a89b48c577 Backend support for function expression 2015-03-12 17:11:46 +03:00
Denis Zharkov 582755e71a Don't generate empty constructor if there is secondary one with empty parameter list 2015-03-11 17:45:29 +03:00
Denis Zharkov 4022982760 Add synthetic argument to default constructors
It's need to add synthetic argument (of type that user can't use)
to constructors with default arguments to avoid clashing with
real user's constructor having the same set of parameters
and additional int's arguments.
2015-03-11 17:45:28 +03:00
Denis Zharkov e65382e6ec Support secondary constructors in JVM backend
There is a lot of changes about closures calculating and generating.

1. As classes can have more than one constructor each of them should
have closure arguments.

2. Captured variables set is the same for all of them.

3. Within constructors bodies/delegating calls closure parameters
should be accessed through method arguments because fields may be
not initialized yet.
2015-03-11 17:45:27 +03:00
Denis Zharkov 6779e95767 Simplify closure analysis within constructors
Using of ConstructorContext instance almost has no sense,
but it complicates logic when there are several constructors.
2015-03-11 17:45:27 +03:00
Denis Zharkov 31be68de0a Get rid of superCall fields in class/closure codegen
Because their semantics looks wrong in case of secondary constructors.
Use resolved delegation call instead.
2015-03-11 17:45:27 +03:00
Denis Zharkov cb881d2628 Drop some ClassDescriptor.getConstructors() usages
supposing that there is only primary constructor
2015-03-11 17:45:22 +03:00
Alexander Udalov b93b9bd565 Support KClass.simpleName and built-in class literals 2015-03-11 16:42:43 +03:00
Alexander Udalov 6e45c6f17c Support class literals (A::class) 2015-03-11 16:42:41 +03:00
Pavel V. Talanov 9ecf95532e Replace 'class object' with default object in project code 2015-03-10 18:07:46 +03:00
Alexander Udalov 0bd5264b5e Get rid of module reflection.stub.jvm
Generate K*Function as a supertype for a function reference instead of
K*FunctionImpl; this will allow one binary library to be used with or without
reflection
2015-03-07 02:31:26 +03:00
Evgeny Gerashchenko e267f0d4ef Safer check for optimized for loops. 2015-03-06 15:09:28 +03:00
Evgeny Gerashchenko 14b16ff87c KT-6916 Slow bytecode for downTo iteration like for (i in max downTo min)
#KT-6916 fixed
2015-03-06 13:43:02 +03:00
Pavel V. Talanov b73d7e19b7 Remove various getDefaultObject() methods 2015-03-06 12:41:46 +03:00
Dmitry Jemerov c029fa2ed0 add test for generating annotations on the setter of a delegated property; (KT-4169); properly generate backing field for delegated property with a setter 2015-03-05 19:04:18 +03:00