Georgy Bronnikov
72ea4cc3d7
Remove descriptors from BridgeLowering
2019-02-23 00:42:16 +03:00
Mads Ager
3a11322506
Enable bytecode text tests for the JVM_IR backend.
2018-12-21 16:20:45 +01:00
Denis Zharkov
d259b91143
Add MutableMap.remove(K, V) as built-in declaration
...
Use PlatformDependent annotation to guarantee it's only be available for JDK8
Also adjust type-safe bridges and mutable collection stubs generation
2016-04-29 15:08:54 +03:00
Denis Zharkov
68f411395a
Fix bridge generation for special builtin override
...
Use method itself signature as common bridge delegate
#KT-11285 Fixed
2016-03-07 09:26:02 +03:00
Denis Zharkov
fa99ea1e98
Generate type-safe barrier in method body
...
In cases when signature of special bridge is the same as current method,
but type is not 'Any?'.
Also there is tiny optimization:
only null check needed if value parameter type is mapped to Object,
but it's not nullable.
#KT-9973 Fixed
2015-11-17 16:27:02 +03:00
Denis Zharkov
1f704e0c4d
Minor. Split BytecodeText tests about special builtin bridges
2015-11-17 16:27:02 +03:00
Denis Zharkov
fafca76ac5
Generate common bridges for final builtin declaration
...
#KT-9596 Fixed
2015-10-17 17:46:17 +03:00
Denis Zharkov
7cbab5816c
Fix lost testData
2015-10-16 21:11:05 +03:00
Denis Zharkov
495780f5ab
Generate INVOKEVIRTUAL 'contains(Object)' instead of 'contains(String)'
...
In cases when callee overrides Collection<String>.contains
2015-10-16 18:16:02 +03:00
Denis Zharkov
d335f71dfe
Generate special bridges for builtins with same name but different JVM descriptor
2015-10-16 18:16:02 +03:00
Denis Zharkov
5c2fd75389
Minor. Clarified comments in test
2015-10-14 20:39:46 +03:00
Denis Zharkov
89ded4ab1d
Implement hack to support both remove() and removeAt() in MutableList<Int>
...
Also add couple of tests about CharSequence.get
2015-10-11 19:57:22 +03:00
Denis Zharkov
80da320c2c
Customize JVM signature for Collection's members
...
- Do not write signature for `contains`
- Write signature for `containsAll` as it's declared like `containsAll(Collection<?>)`
2015-10-09 14:40:33 +03:00
Denis Zharkov
6a1566a6dc
Make JVM backend work with Collection.size as val
...
0. Such properties are called special because their accessor JVM name differs from usual one
1. When making call to such property, always choose special name
2. When generating Kotlin class inheriting such property generate `final bridge int size() { return this.getSize(); }`
3. If there is no `size` declaration in current class generate `bridge int getSize() { // super-call }`
2015-10-07 08:46:35 +03:00