Commit Graph

8883 Commits

Author SHA1 Message Date
Alexander Udalov de0fd3818c Drop "-src" in kotlinc-jvm
Free arguments should be used instead
2014-07-23 21:24:39 +04:00
Alexander Udalov 917938e57b Update copyrights 2014-07-23 21:24:39 +04:00
Alexander Udalov 87439b8e0b Drop "-sourceFiles" in kotlinc-js
Use free arguments instead, as is done in kotlinc-jvm and all sensible
compilers everywhere

Also fix some cases of AntTaskTest to be able to run them locally
2014-07-23 21:24:38 +04:00
Alexander Udalov 125c5e2942 Drop "-printArgs" 2014-07-23 16:01:12 +04:00
Alexander Udalov cb80f95cab Don't output "exec() finished with..." error message
It's useless because the result of the compiler is always evident (it outputs
either diagnostics or an exception stack trace)
2014-07-23 16:01:11 +04:00
Alexander Udalov 5003a2f570 Send compiler output to stderr instead of stdout
Test only stderr in kotlinc test now and move the '-script' test to integration
tests where both stdout and stderr is tested
2014-07-23 16:01:11 +04:00
Denis Zharkov c01512eb41 Do not optimize large methods. #KT-5513 Fixed 2014-07-23 14:13:23 +04:00
Evgeny Gerashchenko 7e6b05554e Always closing IncrementalCache after using. Fixed KannotatorJpsTest. 2014-07-22 21:18:16 +04:00
Pavel V. Talanov f44ba60d51 Fix SimplifyBooleanWithConstantsIntention intention to avoid analyzing files created by JetPsiFactory 2014-07-21 18:52:30 +04:00
Pavel V. Talanov 5246735648 Fix shortening references for receiver in MakeTypeExplicitInLambdaIntention
#KT-5474 Fixed
2014-07-21 18:52:24 +04:00
Denis Zharkov 18cb479ef3 When2Switch: tests for non-literal expression in when by integral 2014-07-21 17:13:57 +04:00
Denis Zharkov 8d8c3d2b9e When2Switch: generate ifnonnull check for nullable values before *switch-opcode 2014-07-21 17:13:56 +04:00
Denis Zharkov 706bbd7b72 When2Switch: check if entry set is not empty 2014-07-21 17:13:56 +04:00
Denis Zharkov d4cb822ee8 When by String constants:
Generate TABLESWITCH/LOOKUPSWITCH bytecode operation for when operator by String constants
2014-07-21 17:13:56 +04:00
Denis Zharkov 5a1c995b5c When by enum:
Generate TABLESWITCH/LOOKUPSWITCH bytecode command in case of "when" by enum entries
2014-07-21 17:13:55 +04:00
Denis Zharkov b2aa249817 Refactoring of switches codegen parts 2014-07-21 17:13:41 +04:00
Denis Zharkov dbd1ab8c67 Minor formatting and unused code deleted 2014-07-21 17:13:41 +04:00
Alexander Udalov 230ceb6221 Resurrect assert for property default values in FULL mode
Respond to
https://github.com/JetBrains/kotlin/commit/4980a3357231c833ebdb7111d16e7be5bd342521#commitcomment-7078429

 #KT-5505 Fixed
2014-07-21 15:29:28 +04:00
Alexander Udalov 4980a33572 Fix unjustified assert in PropertyCodegen
#KT-5505 Fixed
2014-07-19 02:13:27 +04:00
Alexander Udalov 70adb0f4e2 Temporarily prohibit non-local returns for some stdlib functions
Make InlineUtil work with FQ names, not descriptors

 #KT-5496 Fixed
 #KT-5497 Fixed
2014-07-19 02:13:27 +04:00
Alexander Udalov 540b87a1dc Support object array annotation arguments in deserialization 2014-07-19 02:13:26 +04:00
Alexander Udalov d5681540ec Fix NoSuchMethodError for data classes with private parameters
Introduced in a07909bb52
2014-07-19 02:13:26 +04:00
Alexander Udalov cf8e83f4f8 Minor, delete obsolete check
'superCall' is now never a JetDelegatorByExpressionSpecifier, so the check is
useless
2014-07-19 02:13:25 +04:00
Alexander Udalov 93fdf3a254 Minor, extract FrameMap creation in FunctionCodegen 2014-07-18 16:26:48 +04:00
Alexander Udalov 33f7d6e3ef Get rid of a questionable TImpl hack in ImplementationBodyCodegen
Move getTraitImplThisParameterType closer to the only left usage in
JetTypeMapper
2014-07-18 16:26:47 +04:00
Alexander Udalov c25d72d240 Drop CodegenBinding#enclosingClassDescriptor() 2014-07-18 16:26:47 +04:00
Alexander Udalov 78bdcae65e Delete unreachable code in ImplementationBodyCodegen
Change superCall type to JetDelegatorToSuperCall
2014-07-18 16:26:47 +04:00
Alexander Udalov 1949e24ffa Get rid of ConstructorFrameMap, drop CodegenContext#prepareFrame()
Also refactor FunctionGenerationStrategy to take FrameMap as an instance
instead of creating it in a subclass
2014-07-18 16:26:46 +04:00
Alexander Udalov 65c21561a4 Fix super constructor calls of anonymous objects and local classes
If a class inherits from another class which captures something (outer class
instance, receiver parameter, local variables, etc.), the constructor of the
former class should contain all the parameters of the super constructor as its
own parameters, so that it could make a proper super call. All such parameters
are now replicated in the derived constructor with kind = SUPER_CALL_PARAM,
except an instance of the outer class (kind = OUTER), which can be taken from
the derived's own OUTER when it has one, to prevent multiple passing of the
same argument.

Previously it worked only when inheriting from inner classes via a special hack
(ConstructorFrameMap).

Also reuse recently introduced ArgumentGenerator to automatically take care of
default and vararg arguments of super constructor

 #KT-3581 Fixed
 #KT-5342 Fixed
 #KT-5343 Fixed
2014-07-18 16:26:46 +04:00
Alexander Udalov b85a672052 Minor, combine ENUM_NAME and ENUM_ORDINAL parameter kinds 2014-07-18 16:26:42 +04:00
Alexander Udalov 0caf0cffab Minor, extract method JetTypeMapper#writeParameter 2014-07-18 16:26:41 +04:00
Alexander Udalov b29f3dddeb Minor, rename parameter 2014-07-18 16:26:41 +04:00
Alexander Udalov 288bbcae36 Refactor ExpressionCodegen#invokeMethodWithArguments
- for inlining purposes, take ResolvedCall.getCall() instead of a separate
  parameter
- split into two methods, the other one will be used for a more granular code
  generation of a method call
2014-07-18 16:26:40 +04:00
Alexander Udalov 04b54e9cb7 Simplify ExpressionCodegen#generateConstructorCall
Don't go through StackValue.CallReceiver because it handles a variety of cases
when a callable descriptor has a receiver argument, an expected this object, or
both. Constructors can't have receiver arguments, so the resulting code is
greatly simplified
2014-07-18 16:26:40 +04:00
Alexander Udalov eb448627e1 Minor, delete unused method in JvmCodegenUtil 2014-07-17 19:18:06 +04:00
Alexander Udalov eaeb976903 Access private class property via field in Evaluate Expression 2014-07-17 19:18:05 +04:00
Alexander Udalov a07909bb52 Don't generate unnecessary accessors for private class properties 2014-07-17 19:18:05 +04:00
Alexander Udalov 4bdf7e3426 Use direct field access to trivial class properties
#KT-3845 Fixed
2014-07-17 19:18:05 +04:00
Alexander Udalov 1555a3756c Refactor and comment JvmCodegenUtil#couldUseDirectAccessToProperty()
Logic hasn't changed except the deleted isTopLevelDeclaration() call which
always returned false in this case because we checked that it's a class
property earlier
2014-07-17 19:18:05 +04:00
Denis Zharkov 0b2b8ba816 Fixed KT-5493: NPE fix 2014-07-17 18:43:44 +04:00
Denis Zharkov 149ffdc8b9 Analyzer error handling: fix for printing bytecode in case of exception within optimization package 2014-07-17 15:37:07 +04:00
Ilya Ryzhenkov ce5f7e9d61 Breaking change. Map operations revisited. 2014-07-16 21:35:07 +04:00
Nikolay Krasko 0b7699b844 Fix silence turning integers with leading zero into doubles
#KT-4296 Fixed
2014-07-16 18:35:19 +04:00
Denis Zharkov 0e683b0b99 Added "optimize" flag to settings everywhere 2014-07-15 21:34:32 +04:00
Denis Zharkov 602e60f72e Merge conditions refinement 2014-07-15 21:26:54 +04:00
Denis Zharkov 0f5e29df9b tests added 2014-07-15 21:26:53 +04:00
Denis Zharkov e53e4fe257 fixed isSafeCast, so it doesn't use Class.forName() 2014-07-15 21:26:53 +04:00
Denis Zharkov 498e5ec192 Minor refactoring: analyze-method added 2014-07-15 21:26:53 +04:00
Denis Zharkov a412a96ff3 Changed strategy from enumeration of unsafe operations to permitted + INSTANCEOF added 2014-07-15 21:26:52 +04:00
Denis Zharkov 69d8d07a05 Refactoring: reordering methods to usage places 2014-07-15 21:26:52 +04:00