Commit Graph

16726 Commits

Author SHA1 Message Date
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 62ce4a034b Increase maximum heap size for Codegen Tests on Android
Also include all other arguments from "All Tests"
2014-07-18 04:11:18 +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
Evgeny Gerashchenko 79bb433810 Merge pull request #497 from bintree/master
Fixed KT-5493: NPE fix
2014-07-17 18:46:48 +04:00
Denis Zharkov 0b2b8ba816 Fixed KT-5493: NPE fix 2014-07-17 18:43:44 +04:00
Alexander Udalov da3fcae2ba Fix "optimizations" check box in bytecode toolwindow 2014-07-17 15:45:56 +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 ea9e4375b0 Merge pull request #495 from JetBrains/rr/stdlib_maps
Map-related fixes and improvements in stdlib.
2014-07-17 01:30:24 +04:00
Ilya Ryzhenkov 3980664049 Tests for map functions. 2014-07-16 21:35:12 +04:00
Ilya Ryzhenkov 37874556ae Use different file for navigation test because of test framework limitation. 2014-07-16 21:35:11 +04:00
Ilya Ryzhenkov af8d0f7b9e Fix assertion arguments. 2014-07-16 21:35:11 +04:00
Zalim Bashorov 14ab3c4de1 JS stdlib: allowed use null as key and value in Map implementations. Added tests for using null in Set and Map implementations. 2014-07-16 21:35:11 +04:00
Zalim Bashorov 223a14a855 Moved MutableMap.set from Maps.kt to MapsJVM.kt to avoid ambiguity when compile MapTest.kt by JS backend. 2014-07-16 21:35:10 +04:00
Zalim Bashorov 9b081fd254 Minor: assert -> assertTrue 2014-07-16 21:35:10 +04:00
Ilya Ryzhenkov 4ea62071b5 Split tests into platform-independent and JVM. 2014-07-16 21:35:09 +04:00
Ilya Ryzhenkov 8cfbaf4749 Add StdLibMapTest, fix naming to convention StdLib* tests. 2014-07-16 21:35:09 +04:00
Ilya Ryzhenkov a9da7cfeea Use LinkedHashMap everywhere to preserve order. 2014-07-16 21:35:09 +04:00
Ilya Ryzhenkov cb17f0c635 Remove map iteration from ListSpecificTest - JS fails, but it is irrelevant to test. 2014-07-16 21:35:08 +04:00
Ilya Ryzhenkov 2855741572 Map.Entry.toPair 2014-07-16 21:35:08 +04:00
Ilya Ryzhenkov 0e656ce3ce collection.toMap(selector) 2014-07-16 21:35:08 +04:00
Ilya Ryzhenkov 3491c88793 Recover test for mutable List variable and move it to ListSpecificTests 2014-07-16 21:35:07 +04:00
Ilya Ryzhenkov ce5f7e9d61 Breaking change. Map operations revisited. 2014-07-16 21:35:07 +04:00
Ilya Ryzhenkov 4167359c08 Map.filter() returns Map instead of List of Entries 2014-07-16 21:35:06 +04:00
Ilya Ryzhenkov 6849fb8358 Map.toList() returns List of Pairs instead of List of Entries. 2014-07-16 21:35:06 +04:00
Ilya Ryzhenkov 7273f223f4 Remove Map.groupBy 2014-07-16 21:35:06 +04:00
Ilya Ryzhenkov 295ce5fdf8 Unify substringBefore/After and related functions, so that they always return receiver in case of missing delimiter by default. 2014-07-16 21:10:32 +04:00
Ilya Ryzhenkov e22ff87d81 Make LINE_SEPARATOR lazy property to not kick-in before system is setup. 2014-07-16 21:10:32 +04:00
Ilya Ryzhenkov 2b6fcc0b7c singleOrNull methods should never throw exception #KT-5424 Fixed 2014-07-16 21:10:32 +04:00
Ilya Ryzhenkov d4db837dec Fix fails() assertion which was silently swallowing exceptions. 2014-07-16 21:10:32 +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
Natalia Ukhorskaya 73e0ae1d1c Evaluate expression: support captured vals 2014-07-16 15:17:44 +04:00
Natalia Ukhorskaya 6440884a40 Add tests for tracing frame 2014-07-16 15:17:44 +04:00
Zalim Bashorov 670e71bdd6 Minor: update link to Kotlin website. 2014-07-15 23:50:30 +04:00
Denis Zharkov 0e683b0b99 Added "optimize" flag to settings everywhere 2014-07-15 21:34:32 +04:00
Denis Zharkov 433c9cd4a5 Fixed test in evaluateExpression (redundant boxing was removed) 2014-07-15 21:26:54 +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