Commit Graph

262 Commits

Author SHA1 Message Date
Andrey Breslav 1dbfe5483a Fix isNullableType() to always consider flexible types, even if they contain type parameters 2014-10-13 15:38:01 +04:00
Michael Bogdanov a88e9666e4 As designed KT-5930: Wrong execution order in case of extension function
#KT-5930 As Designed
2014-10-13 11:31:15 +04:00
Michael Bogdanov 9d72036ba5 Fix for KT-5995: Labeled val causes an exception from the back-end
#KT-5995 Fixed
2014-10-13 11:30:28 +04:00
Michael Bogdanov 605c9f48b4 Added inline annotation check on local funs 2014-10-11 13:53:43 +04:00
Pavel V. Talanov b2c288b62a Test super calls in enum literals 2014-10-10 18:12:56 +04:00
Pavel V. Talanov 8e6618920d Minor: rename test data file 2014-10-10 18:05:36 +04:00
Pavel V. Talanov bb5998048f Test code generation for enum deriving from a trait 2014-10-10 17:43:33 +04:00
Evgeny Gerashchenko fa70192f75 Added test for EA-49318. 2014-10-10 16:00:27 +04:00
Michael Bogdanov d4307c69d2 Fix for KT-4301: Too many StringBuilders on string concatenations
#KT-4301 Fixed
2014-10-09 12:23:06 +04:00
Michael Bogdanov 4a078c1143 Temporary disable local fun inlining (it's not supported now) 2014-10-09 10:38:14 +04:00
Michael Bogdanov 41c4c3befd Fix test data for KT-3285 2014-10-08 09:34:50 +04:00
Michael Bogdanov 6b336be10c Obsolete KT-1776: Can't resolve members of auto-casted "this" in extension without typing "this" explicitly
#KT-1776 Obsolete
2014-10-07 17:21:11 +04:00
Michael Bogdanov 278e682595 Obsolete KT-3285: "A receiver of type ... is required" when using extension functions
#KT-5467 Obsolete
2014-10-07 17:21:11 +04:00
Michael Bogdanov bb3f1f1fb7 Fix for KT-5467: JVM codegen doesn't support capture of many extension receivers
#KT-5467 Fixed
2014-10-07 17:21:10 +04:00
Michael Bogdanov c3cfe33b64 Fix for KT-5495: Support method implementations in local traits
#KT-5495 Fixed
2014-10-07 17:21:10 +04:00
Michael Bogdanov d0d207f387 Fix for KT-3584: Wrong bytecode generated for local class with default parameters and captured local val
#KT-3584 Fixed
2014-10-07 10:13:53 +04:00
Michael Bogdanov 7be48c7336 Support move on depth 2 2014-10-07 10:13:52 +04:00
Michael Bogdanov e6c98078b3 Fixes for KT-4733 UnsupportedOperationException: don't know how to move type J to top of stack; KT-3430 VerifyError on a safe call to a primitive value
#KT-4733 Fixed
  #KT-3430 Fixed
2014-10-07 10:13:52 +04:00
Michael Nedzelsky 0c3a7a9d99 add more tests for bridge methods (fake override) 2014-10-07 08:37:18 +04:00
Michael Nedzelsky 0dd17535d6 JS backend: add TARGET_BACKEND: ONLY_JVM for some tests for bridge methods 2014-10-07 08:36:46 +04:00
Michael Bogdanov 15043b3c6d Fixes for KT-4991: Prefix/postfix expressions resolved to local extensions are not supported in codegen;
KT-4989: Verify error on local functions and extensions;
KT-4987: NegativeArraySizeException on local extension convention function on nullable Int

  #KT-4991 Fixed
  #KT-4989 Fixed
  #KT-4987 Fixed
2014-10-03 17:24:14 +04:00
Michael Bogdanov 0c11ca680e Fix for KT-3969: Codegen fails on unary calls with default arguments
#KT-3969 Fixed
2014-10-03 17:24:14 +04:00
Alexander Udalov 19497262b3 Don't lookup built-in classes by invalid names
#KT-5869 Fixed
2014-09-26 18:48:43 +04:00
Natalia Ukhorskaya 0dfc793a45 Merge pull request #515 from dmekhanikov/master
Introduce propertyDelegated method in delegates
2014-09-24 18:50:56 +04:00
Michael Bogdanov cde74504d4 Test for obsolete kt5307 2014-09-24 17:12:27 +04:00
Denis Mekhanikov c4bfa0edca Introduce propertyDelegated method in delegates 2014-09-24 15:34:12 +04:00
Nikolay Krasko e796f88b38 Regenerate test data with constructed descriptors for diagnostics tests 2014-09-18 17:58:23 +04:00
Alexander Udalov c0a8e8a4fc Fix safe call on a static method in JVM back-end
#KT-5796 Fixed
2014-09-18 11:13:30 +04:00
Alexander Udalov 483232a3e5 Minor, add test for obsolete issue
#KT-5159 Obsolete
2014-09-17 21:20:57 +04:00
Alexander Udalov e0ee890486 Move properties of enum class object to the enum class
Similar to how it's done for usual classes
2014-09-11 17:56:43 +04:00
Alexander Udalov 81004889eb Fix initialization of object's INSTANCE$ field
Call object's constructor in <clinit> and ignore the result, but in the first
line of <init> save the current "this" to INSTANCE$

 #KT-4516 Fixed
 #KT-4543 Fixed
 #KT-5291 Fixed
 #KT-5523 Fixed
 #KT-5582 Fixed
2014-09-11 17:56:43 +04:00
Alexander Udalov b52f337f7f Drop enum class object hack
Place valueOf() and values() into the static scope of the corresponding enum
class

 #KT-5580 Fixed
 #KT-2410 Fixed
2014-09-09 20:42:37 +04:00
Alexander Udalov d86903ccd4 Minor, add codegen test on extension to nested class 2014-09-09 20:42:35 +04:00
Michael Bogdanov e26d635633 Initial implementation of platformStatic 2014-09-09 16:28:28 +04:00
Michael Nedzelsky 25a0854dbd fix KT-5645: 'continue' inside 'do...while' statement works as goto to the beginning of the loop (not checking loop condition)
#KT-5645 Fixed
2014-09-05 18:31:53 +04:00
Svetlana Isakova 9d366cb896 Prohibit local objects and enum classes
#KT-5402 Fixed
  #KT-4838 Fixed

Resolve type of object inside local object as special, not supertype('Any').
Changed visibility of constructor of anonymous object to 'internal' to be able to resolve the following:
fun box(): String {
    var foo = object {
        val bar = object {
            val baz = "ok"
        }
    }
    return foo.bar.baz
}
The containing declaration of property initializers is constructor, so 'baz' was invisible inside private constructor.
2014-09-01 12:32:52 +04:00
Svetlana Isakova 7f33ad90a6 Report 'nested class accessed via instance reference' error 2014-09-01 12:32:50 +04:00
Svetlana Isakova 8289f13016 Introduced QualifierReceiver instead of PackageType 2014-09-01 12:32:49 +04:00
Svetlana Isakova e4e09d6c70 Resolve invoke on class objects and enum entries
Added FakeCallableDescriptorForObject to make a resolved call
with object as variable in 'variable as function call'

 #KT-4321 Fixed
 #KT-4863 Fixed
2014-09-01 12:32:48 +04:00
Denis Mekhanikov 1533c0e9f3 Support more than 32 default arguments
#KT-4675 Fixed
2014-08-20 20:47:34 +04:00
Alexander Udalov 99d4f97aef Fix access to top level delegated property from another property
#KT-5612 Fixed
2014-08-14 10:43:50 +04:00
Alexander Udalov 47d5f83d04 Report unmet trait requirements
#KT-3006 Fixed
2014-08-13 17:19:55 +04:00
Svetlana Isakova fb4c256d08 Added tests for choosing 'most specific' resolution candidate
Fixed test (while resolve with library on android): 'run' resolves to library function
2014-07-30 17:07:10 +04:00
Alexander Udalov 98ffdb3e32 Minor, delete Object from some test data 2014-07-25 21:19:39 +04:00
Alexander Udalov fb958897a9 Introduce kotlin.Cloneable
- Cloneable is a trait with a single protected member 'clone', which is mapped
  to java.lang.Cloneable on JVM
- 'clone' is non-abstract to be able to call 'super.clone()' in the
  implementations. Also if you need your class to be Cloneable, most of the
  time inheriting from Cloneable and calling 'super.clone()' will work
- hack 'super.clone()' in JVM intrinsics and TImpl delegation generation
- make arrays Cloneable, handle 'clone()' calls in the intrinsic

 #KT-4890 Fixed
2014-07-25 21:19:39 +04:00
Alexander Udalov a79398fa00 Don't load Object as a supertype for Java classes
#KT-4890 In Progress
 #KT-5002 Fixed
2014-07-25 21:19:37 +04:00
Zalim Bashorov c767ffc3e7 Unit.VALUE -> Unit in testData 2014-07-25 17:16:40 +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 a07909bb52 Don't generate unnecessary accessors for private class properties 2014-07-17 19:18:05 +04:00
Andrey Breslav 777f3d1341 Codegen tests now fail on JVM-specific errors 2014-06-19 22:11:57 +04:00