Commit Graph

1093 Commits

Author SHA1 Message Date
Alexander Udalov e8088ec6a7 Write correct InnerClasses attribute to class files
InnerClasses should contain entries for every inner and every outer class,
according to the JVMS

 #KT-3390 Fixed
2013-03-12 14:57:14 +04:00
Alexander Udalov 656f4e2f26 Minor refactoring of writeOuterClass() 2013-03-12 14:57:13 +04:00
Natalia.Ukhorskaya 02c8989b2f Top level functions inside module should be invoked using package$src class 2013-03-06 16:22:52 +04:00
Natalia.Ukhorskaya d501e8821c Move top level properties from package class to package$src 2013-03-06 16:22:44 +04:00
Natalia.Ukhorskaya d9739fb5bb Remove usages of isMultiFileNamespace 2013-03-06 16:22:37 +04:00
Natalia.Ukhorskaya faf994d872 Generate package$src files for each package 2013-03-06 16:22:33 +04:00
Natalia.Ukhorskaya a9415204f6 Replace "." with "_" in package$src class name 2013-03-06 16:22:18 +04:00
Andrey Breslav 7107288f88 Injectors regenerated 2013-03-06 12:53:14 +04:00
Mikhael Bogdanov b3ec87f956 ClassObject instance field refactoring 2013-03-04 16:42:55 +04:00
Mikhael Bogdanov 6e1e495397 KT-3374 Wrong this@method receiver 2013-02-28 15:22:35 +04:00
Andrey Breslav cc569fe0ba Compilation fixed 2013-02-19 19:06:49 +04:00
Andrey Breslav ec33f90f89 Rename getQualifiedName() -> getFqName() 2013-02-19 18:52:12 +04:00
Mikhael Bogdanov 1b2da6b558 Write proper enclosingMethod/enclosingClass information to bytecode 2013-02-19 17:56:55 +04:00
Andrey Breslav afd764c27f Implementations of descriptors moved to a separate package 2013-02-19 14:32:06 +04:00
Alexey Sedunov 1f8d42ab49 Fix nullability check (in case of explicitly nullable types constructed from ype variables) 2013-02-13 18:23:37 +04:00
Evgeny Gerashchenko 4043491ad2 Got rid of code duplication. 2013-02-13 18:08:36 +04:00
Evgeny Gerashchenko b66025811f Merged after body and after leave variable tasks. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko 64c89836fd KT-933 Optimized iteration over progressions.
#KT-933 fixed
2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko 14f3144533 Generating map instead of initializing manually. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko 522530ec4a Extracted util method. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko db6fb43d22 Removed unused enum. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko 80b21524f4 Optimized iteration over primitive range expression. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko 44e14c0a1c Extracted super class. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko b5f820cf69 Prepared for extracting superclass. 2013-02-13 18:08:35 +04:00
Evgeny Gerashchenko ab99856c16 Got rid of calculating element type twice. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko ca344d93cd Got rid of super calls. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko cc2930b0b6 Got rid of stupid reassigning when iterating ranges. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko e1bc78da72 Simplified scheduling leaving temp variables: added create method. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko fd97bbcbd5 Simplified afterLoop(): no overriding. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko d6bc5a8782 Added util methods. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko da48a11374 Creating loop parameter var once. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko 83fa1e95e6 Extracted field (instead of passing parameter. 2013-02-13 18:08:34 +04:00
Evgeny Gerashchenko c753ac06b1 KT-2707 Optimize for loops for range literals
#KT-2707
2013-02-13 18:08:33 +04:00
Mikhael Bogdanov c61c8d7fa0 Compilation Exception - remove duplicated this on stack
#KT-3114 Fixed
2013-02-11 15:19:49 +04:00
Alexander Udalov 83b93071d3 Fix over-optimized comparison with null 2013-02-11 02:01:39 +04:00
max-kammerer 843991083d For namespaces with multiple files keep 'Compiled from' information empty 2013-02-07 18:00:53 +04:00
Natalia.Ukhorskaya 11273f3035 Implement package protected visibility 2013-02-06 21:54:19 +04:00
Alexander Udalov 64bc79aaac Fix safe calls codegen for nullable generic 2013-02-06 17:54:30 +04:00
Alexander Udalov 433660b2ce Fix codegen of !! for nullable generics 2013-02-06 17:54:29 +04:00
Alexander Udalov 75f09b7527 Fix codegen of as-casts for nullable generics 2013-02-06 17:54:28 +04:00
Alexander Udalov 70f67c7993 Fix elvis expression in case of nullable generic 2013-02-06 17:54:27 +04:00
Alexander Udalov 8697adb28a Fix generic data class hashCode for null
Null may come from everywhere, so we always check for it (when the property's
type is not primitive)
2013-02-06 17:54:26 +04:00
Alexander Udalov 1021ec5ff4 Add Intrinsics.areEqual()
It's more safe, short and less error-prone (especially w.r.t. nullability of
generic types)
2013-02-06 17:54:26 +04:00
Alexander Udalov 1f4dd8cd33 Add CodegenUtil.isNullableType(), fix assertions
JetType.isNullable() is not accurate when the type denotes a type parameter:
a parameter can be not null (isNullable=false), but its upper bound can be
nullable (<T: Any?>), so null may appear in the value of such type. Therefore
it's preferred to use a special check (isNullableType()) in codegen from now on

Do not generate assertion for parameters of not-null types which have a
nullable upper bound + the same with Java method calls

Also fix Intrinsics class internal name in tests

 #KT-3313 Fixed
2013-02-05 21:52:29 +04:00
Andrey Breslav 2ae3dad92f Extract interface: PropertySetterDescriptor 2013-02-05 20:48:18 +04:00
Andrey Breslav d8258ef9fb Extract interface: PropertyGetterDescriptor 2013-02-05 20:47:56 +04:00
Alexander Udalov 8eb6047972 Fix assertions generation for substituted members 2013-02-05 16:26:56 +04:00
Andrey Breslav 4b96911b37 @NotNull for parameter of substitute() 2013-02-04 21:25:18 +04:00
Andrey Breslav 21eef960b5 Extract PropertyDescriptor interface 2013-02-04 21:22:54 +04:00
Alexander Udalov 4ca522bf0e Fix codegen of do-while condition
The condition of a do-while loop can use variables declared in the loop
(variables can only be declared inside a block). Previously this behaviour
caused crash because after the block was generated, all variables declared
inside that block were gone from myFrameMap

 #KT-3280 Fixed
2013-02-04 15:30:38 +04:00