Alexander Udalov
35e956609a
Rewrite mutable collection stub method generation
...
The main problem of the previous approach was that we were only generating
erased method signatures, which was incorrect in case a class also had a member
from another supertype with the same signature as the substituted one from the
collection. Javac issues compilation errors when compiling Java code against
such classes.
Also all the needed method stub signatures were hardcoded in
generateBuiltInMethodStubs() and the case of MutableListIterator was missing
2014-10-27 17:17:31 +03:00
Alexander Udalov
fb5806f5fb
Fix inheritance from mutable Java collections
...
Don't use CodegenUtil#getDeclaredFunctionByRawSignature because it's incorrect
in case of platform types. Instead use JetTypeMapper to find JVM signatures of
methods which are callable on the current class
#KT-6042 Fixed
2014-10-22 10:51:14 +04:00
Andrey Breslav
7ed7f020d3
Generation of ++ and += fixed for platform types
2014-10-22 00:41:20 +04:00
Alexander Udalov
3a8ad45dec
Append newline to EOF for .txt test data files
...
Reverts and fixes 102f0d3
2014-10-21 03:18:27 +04:00
Svetlana Isakova
4a1a95ea36
Rename: casted -> cast
2014-10-18 11:06:53 +04:00
Alexander Udalov
6ddc063a76
Regenerate test data on enums
...
Now they have final equals, hashCode and compareTo
2014-10-17 21:27:24 +04:00
Alexander Udalov
6ec71b3fd1
Generate lambdas in enum entry super calls
...
#KT-4423 Fixed
2014-10-17 21:27:22 +04:00
Alexander Udalov
159878e09d
Pass correct outer instance in complex case of inheritance
...
#KT-5343 Fixed
2014-10-16 16:16:55 +04:00
Alexander Udalov
61674fb3d9
Don't put outer instance twice for anonymous object extending inner
...
#KT-5343 In Progress
2014-10-16 16:16:54 +04:00
Alexander Udalov
7315146753
Fix and refactor ExpressionCodegen#pushClosureOnStack
...
- change Closure parameter to ClassDescriptor, load closure in the beginning
- invert and rename boolean parameter, also use it only to prevent pushing
dispatch receiver (not the extension receiver) onto the stack because the
only non-trivial usage of it is preceded by manual handling of the dispatch
(not extension) receiver. This fixes innerOfLocalCaptureExtensionReceiver.kt
2014-10-16 16:16:54 +04:00
Michael Nedzelsky
aa3d0fe1d7
minor: rename TargetBackend enum values
2014-10-13 19:24:59 +04:00
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