Commit Graph

15271 Commits

Author SHA1 Message Date
Alexander Udalov 1efdd33dbd Refactor codegen hierarchy
- pull generate() and a bunch of abstract methods from ClassBodyCodegen up to
  MemberCodegen
- implement these methods in ScriptCodegen and PackagePartCodegen
- make MemberCodegen generic on the type of the element it is generating
2014-04-24 16:10:16 +04:00
Alexander Udalov ff8e282c4a Simplify mapToCallableMethod 2014-04-24 16:10:16 +04:00
Alexander Udalov 722c15b747 Simplify mapOwner/mapToCallableMethod 2014-04-24 16:10:15 +04:00
Alexander Udalov 61675de305 Optimize PropertyMetadataImpl instance creation
Create all property metadatas in <clinit> and save them to a static array
$propertyMetadata. Getter/setter of each delegated property will then just
obtain the corresponding instance from that array

 #KT-4232 Fixed
2014-04-24 16:10:15 +04:00
Alexander Udalov 925b27238c Minor, simplify StackValue.ArrayElement 2014-04-24 16:10:15 +04:00
Alexander Udalov 678520364a Refactor property initialization codegen
Move a lot of the code from ImplementationBodyCodegen up to MemberCodegen, make
methods non-static (consequently get rid of a lot of parameters), reuse the
same code in PackagePartCodegen
2014-04-24 16:10:14 +04:00
Alexander Udalov 6803fec053 Simplify clinit codegen, delete code duplication
Logic for <clinit> generation was present both in PackagePartCodegen and in
ClassBodyCodegen, move it to MemberCodegen
2014-04-24 16:10:14 +04:00
Alexander Udalov be47897e18 Minor, ValueArgument.asElement returns JetElement 2014-04-24 16:10:14 +04:00
Alexander Udalov f7235e9d82 Fix abstract nested class in enums in JVM back-end
It caused InstantiationError because the enum had an incorrect ACC_ABSTRACT
flag
2014-04-24 16:10:13 +04:00
Alexander Udalov 129b643898 Minor, reformat in ImplementationBodyCodegen 2014-04-24 16:10:13 +04:00
Alexander Udalov 7f873026be Remove code duplication in property accessor codegen 2014-04-24 16:10:12 +04:00
Alexander Udalov 55836884d5 Minor refactorings in JetTypeMapper: renames, inlines, etc. 2014-04-24 16:10:12 +04:00
Alexander Udalov d913dfb1aa Correctly map declaration owner in JVM codegen
"context.contextKind()" was incorrect in
ExpressionCodegen.intermediateValueForProperty(), because it represents the
context of the call site, not the context of the property declaration

 #KT-4878 Fixed
2014-04-24 16:10:12 +04:00
Alexander Udalov fbf9f5f7d0 Don't generate bridges for equals(), hashCode(), toString()
Otherwise an assertion is failing in the algorithm which is related to an
inconsistency of java.lang.Object inheritance in JDR (KT-4890)
2014-04-24 16:10:12 +04:00
Alexander Udalov 6b348bfc6e Make Ref fields volatile
Otherwise local shared variables are not safe to use from several threads
2014-04-24 16:10:11 +04:00
Alexander Udalov af421f53da Rename FQNAMES -> FQ_NAMES 2014-04-24 16:10:11 +04:00
Zalim Bashorov 525709bced Added MIN_JAVA_VERSION directive for intentions and fixed failed test(convertIfToAssert/inapplicableCauseSent.kt). 2014-04-24 15:37:35 +04:00
Tal Man f61db2decc Intention to transform an if an AssertionError throw into an assert 2014-04-24 15:36:34 +04:00
Ilya Ryzhenkov d06b9abd4f Add platform independent part of Range tests to JS stdlib test run 2014-04-24 12:59:43 +04:00
Ilya Ryzhenkov 717f03f474 Split tests into platform independent and JVM parts to run subset of tests in JS 2014-04-24 12:59:43 +04:00
Ilya Ryzhenkov ee8a7d6825 Include Ranges extension functions and Numbers NaN checks for JS 2014-04-24 12:59:43 +04:00
Ilya Ryzhenkov a6c01f82b2 Make isNaN check language independent, working in JVM & JS 2014-04-24 12:59:43 +04:00
Ilya Ryzhenkov a825b13a4b Restore tests on streams, add test for filterNotNull 2014-04-24 12:59:42 +04:00
Ilya Ryzhenkov 87745c05ae Fix filterNotNull and mapNotNull for streams. 2014-04-24 12:59:42 +04:00
Ilya Ryzhenkov 118126c744 Add toList() operation on Maps 2014-04-24 12:59:42 +04:00
Ilya Ryzhenkov 5537ff5f3c Add toSortedList operation for Streams 2014-04-24 12:59:42 +04:00
Ilya Ryzhenkov 9a7758bf4e Remove bogus filterIsInstance* on strings. 2014-04-24 12:59:42 +04:00
Ilya Ryzhenkov 6562ee4967 Rename "collection" parameter to "destination" in *To() functions. 2014-04-24 12:59:41 +04:00
Ilya Ryzhenkov e43d08d228 Fix typo 2014-04-24 12:59:41 +04:00
Ilya Ryzhenkov 89c1260627 Fix formatting in Engine and templates 2014-04-24 12:59:41 +04:00
Ilya Ryzhenkov f14ca2cf89 Extension method to convert Enumeration to List 2014-04-24 12:59:41 +04:00
Ilya Ryzhenkov cbc0e6404e Support String in generators, and migrate generated functions. 2014-04-24 12:59:41 +04:00
Ilya Ryzhenkov d9d5631a16 Optimize selection functions, add guard checks. 2014-04-24 12:59:41 +04:00
Amal Samally a3ad79e5d9 KT-4614: Add String.format(Locale, args) 2014-04-24 12:59:40 +04:00
Ilya Ryzhenkov d54fb97c5d Make all *Array.fill() extensions returning an array #KT-4760 Fixed 2014-04-24 12:59:40 +04:00
Ilya Ryzhenkov 1db035a0aa Slice functions for arrays and lists. 2014-04-24 12:59:40 +04:00
Ilya Ryzhenkov aee199b5b0 Add reverse() function to js version of StringBuilder 2014-04-24 12:59:40 +04:00
Ilya Ryzhenkov 962a738f1e Fix js RangeIterator and NumberProgression. 2014-04-24 12:59:40 +04:00
Ilya Ryzhenkov df310ac362 Minor: restore generated line break so that file do not get dirty on every regeneration 2014-04-24 12:59:40 +04:00
mikhael.bogdanov 629ca66d93 CollectionElement.dupReceiver simplification 2014-04-24 12:25:52 +04:00
mikhael.bogdanov f57bcbb411 Removed redundant dupReceiver: local and expression stack value don't have it 2014-04-24 12:25:45 +04:00
Valentin Kipyatkov ae9f6fa5fc Fix compilation 2014-04-23 19:27:47 +04:00
Valentin Kipyatkov cd2cf2d987 Code completion: minor changes after code review 2014-04-23 19:23:11 +04:00
Valentin Kipyatkov 6808e82b81 Code completion: another way of import insertion on class name completion.
#KT-4905 Fixed
2014-04-23 19:23:11 +04:00
Valentin Kipyatkov 7905d32c14 Smart completion: static members insertion reworked to support single lambda parameter, more correct reference shortening in range 2014-04-23 19:23:11 +04:00
Valentin Kipyatkov e8805f69bf Code completion: template item for function taking lambda with 2 or more parameters (KT-4855) + better handling of type instantiation in smart completion 2014-04-23 19:21:28 +04:00
Natalia Ukhorskaya 0057843c08 debugger: create KotlinCodeFragment only on expression mode of evaluate expression 2014-04-23 18:52:05 +04:00
Natalia Ukhorskaya 931b628988 Editor for evaluate expression: implement highlighting and completion using ResolveElementCache 2014-04-23 18:10:02 +04:00
Natalia Ukhorskaya 2eff4e2300 Create ExpressionCodeFragment only for expression mode in evaluate expression 2014-04-23 18:10:01 +04:00
Natalia Ukhorskaya f54aee150e Debugger: replace one read action with lock for extract variable and for analyze file 2014-04-23 18:10:00 +04:00