Commit Graph

579 Commits

Author SHA1 Message Date
Evgeny Gerashchenko 516a5b76e8 Fixed calling inherited SAM adapter. 2013-05-06 16:45:36 +04:00
Mikhael Bogdanov 22ddd05e09 KT-3576 Getters for float constants in objects always return 0.0 when constants are less than 1.0
#KT-3576 Fixed
2013-05-06 10:41:48 +04:00
Natalia.Ukhorskaya b9e5227b58 Change String argument of property delegate method to PropertyMetadata 2013-04-30 21:47:24 +04:00
Natalia.Ukhorskaya 6e2584d0de Generate bytecode for delegated properties 2013-04-30 21:47:22 +04:00
Natalia.Ukhorskaya 3297c0e9d3 No such field error when set private property without backing field (analog of KT-2892) 2013-04-30 21:47:21 +04:00
Mikhael Bogdanov b0b6728c7e KT-3118 NoSuchFieldError on private property without backing field &&
KT-3551 Wrong synthetic accessor implementation
2013-04-30 15:28:02 +04:00
Mikhael Bogdanov b6fc0c5c13 KT-3538: Super call to trait implemetation invokes method from base class 2013-04-24 15:52:09 +04:00
Mikhael Bogdanov aa2db75266 KT-3389: Local class construction results in CompilationException && KT-2873 && KT-3210
KT-2873: VerifyError on instantiating a local class inside a closure
KT-3210 Inline Class: CompilationException: Back-end (JVM) Internal error: wrong code generated java.lang.ArrayIndexOutOfBoundsException null

 #KT-3389 Fixed
2013-04-24 13:49:47 +04:00
Alexander Udalov 959f2fb70b Fix codegen tests on Android
Since Android tests move files around, changing their packages, and 'toString'
tests the exact name of a class, we now get it via Java reflection
2013-04-22 21:47:17 +04:00
Alexander Udalov 56f8f021f9 Generate proper generic signature for closure classes 2013-04-22 17:59:32 +04:00
Alexander Udalov ace7bd9bc8 Fix StackValue.coerce void to Object
We can only put Unit.VALUE on stack if we're requested an instance of Object or
Unit. In other cases (arbitrary objects / arrays) we put null instead
2013-04-22 17:59:32 +04:00
Alexander Udalov 054e5fb5e7 Codegen for callable reference expressions
#KT-1183 In Progress
2013-04-22 17:59:32 +04:00
Alexander Udalov 1eeaaad05d Refactor method/constructor calls in codegen
- use ResolvedCall where possible
- 'call' parameter to invokeMethodWithArguments was used only to generate
  callee, e.g. in "A()" where A is an expression which can be invoke()'d.
  In case of constructors and enum entry delegation specifiers there's no need
  to generate callee, so 'call' is made Nullable with a subsequent assert
- remove generateJavaConstructorCall() method, since it did no useful work.
  Java constructor invocation is broken anyway and needs to be fixed (KT-3532)
- minor code style / formatting issues fixed, several methods renamed to better
  reflect semantics
2013-04-22 17:59:32 +04:00
Alexander Udalov 76fa9642f0 toString() for FunctionN classes
It's implemented as if the types were reified: getting the real type parameters
of the corresponding FunctionN class
2013-04-22 17:59:29 +04:00
Alexander Udalov 0ec1f20140 Write generic signature for closure FunctionN superclass
ClosureCodegen.appendType() now appends any Type as a type parameter correctly
2013-04-22 17:59:29 +04:00
Alexander Udalov 974df0ed8e Use FunctionImplN instead of FunctionN in codegen
Superclass of closures should now be FunctionImplN instead of FunctionN. Since
these -Impl classes are needed only in JVM, the corresponding descriptors and
types are created in the back-end only.
2013-04-22 17:59:29 +04:00
Evgeny Gerashchenko 7133f20247 Added tests with type parameter of class in SAM adapter. 2013-04-18 22:02:04 +04:00
Evgeny Gerashchenko 8c4e45de9a Supported SAM adapters with type parameters. 2013-04-18 22:01:26 +04:00
Evgeny Gerashchenko f4994969c0 Added tests with type parameter of class in SAM adapter. 2013-04-18 22:01:26 +04:00
Evgeny Gerashchenko e554228a73 Added tests with mixture of SAM and non-SAM parameters. 2013-04-18 22:01:26 +04:00
Evgeny Gerashchenko 7bd11718de Supported simplest cases of SAM adapter in backend. 2013-04-18 22:01:26 +04:00
Mikhael Bogdanov 82d7f07cb3 Fixed bug in fix for KT 3492: Bug in bytecode generation for labeled super call from inner class & Property generation refactoring 2013-04-18 18:33:25 +04:00
Mikhael Bogdanov c69e7f059d Duplicated JetTypeMapper.mapSignature removed 2013-04-18 15:03:43 +04:00
Mikhael Bogdanov a1d295638a ExpressionCOdegen.visitSimpleNameExpression simplification 2013-04-18 14:05:15 +04:00
Mikhael Bogdanov 1fd76845ad Regression test for kt3315 2013-04-17 18:55:04 +04:00
Natalia.Ukhorskaya f2b3be7416 Unify properties initialization for init and clinit 2013-04-17 16:18:10 +04:00
Mikhael Bogdanov 57b161b08a KT-3500: ClassFormatError: Duplicate method name&signature in class file && KT-3429: Traits override bug 2013-04-17 15:23:33 +04:00
Mikhael Bogdanov 3da3f94b4e KT 3492: Bug in bytecode generation for labeled super call from inner class & Property generation refactoring 2013-04-17 15:23:33 +04:00
Natalia.Ukhorskaya 1dce3b5da4 Invoke top level function with default argument using src class 2013-04-09 17:11:25 +04:00
Zalim Bashorov a665fa2049 Rewrote nonLiteralFilenameFilter and filenameFilter tests without working with FS.
Removed filenameFilter test from excludes for AndroidTests.
2013-04-02 22:11:57 +04:00
Evgeny Gerashchenko 6ff9bfd4bb Supported SAM constructor calls without function literal. 2013-03-29 20:36:47 +04:00
Evgeny Gerashchenko dcb95fc5ac Fixed priorities for synthetic functions. 2013-03-29 13:10:31 +04:00
Evgeny Gerashchenko 0bc65321c2 KT-1547 Wrong layout of closure classes
#KT-1547 fixed
2013-03-28 15:54:51 +04:00
Evgeny Gerashchenko 91282b992d Supported functional interfaces with generic parameters in codegen. 2013-03-27 19:19:56 +04:00
Evgeny Gerashchenko e6c047b2e0 Added tests with FilenameFilter (several arguments). 2013-03-27 19:19:56 +04:00
Evgeny Gerashchenko 835c0f85c7 Supported SAM constructors in codegen (simplest case). 2013-03-27 19:19:55 +04:00
Mikhael Bogdanov ad4eeb3f8a Properly capture local functions
Local functions in local classed wasn't captured properly
2013-03-27 15:57:27 +04:00
Mikhael Bogdanov 932c1444a2 Fix for local closures 2013-03-26 15:43:25 +04:00
Andrey Breslav 3bd202de84 Allow to call += on a val 2013-03-21 21:21:54 +04:00
Mikhael Bogdanov 93b860e4ad Always generate getter and setter 2013-03-20 20:50:06 +04:00
Alexander Udalov 7cc1ed5cb1 Add regression test for KT-3413 2013-03-18 14:52:29 +04:00
Alexander Udalov 242b97febf Fix mapGetterSignature/mapSetterSignature
In case of TRAIT_IMPL the incorrect this was written. Reuse the code from the
common mapSignature

 #KT-3413 Fixed
2013-03-15 22:03:39 +04:00
Alexander Udalov a9776016a9 Resolve static methods of enum in front-end
Up to this point, front-end did not suspect that there could be classes which
have both a class object and a package for static members. Since this became
possible for enums loaded from Java binaries (enum entries and valueOf()/
values() are placed into the class object, and every other static member into
the package), we adjust the corresponding scope to also include members from
the corresponding package

 #KT-2990 Fixed
2013-03-15 16:00:57 +04:00
Alexander Udalov 68844131b0 Fix broken isEnumClassObject methods
Out of three methods, two were incorrect
2013-03-15 16:00:55 +04:00
Evgeny Gerashchenko be30716076 Test for KT-2017 Cannot sort list with no comparator
#KT-2017 obsolete
2013-03-14 20:49:41 +04:00
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
Natalia.Ukhorskaya 02c8989b2f Top level functions inside module should be invoked using package$src class 2013-03-06 16:22:52 +04:00
Evgeny Gerashchenko 0f83c8297e Added corner case test for int range iteration. 2013-03-05 14:58:43 +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