Steven Schäfer
9c4f8f7e54
JVM IR: Fix signature mapping for inline classes using new mangling
...
When resolving inline class methods in binary dependencies we look for
methods matching both the new and the old mangling scheme. On the IR
backend the method signature has to be computed for the inline class
replacement, since the logic for signature mangling is not contained in
the method signature mapping, unlike in the old backend.
2021-01-20 17:43:41 +01:00
Dmitry Petrov
b0f6461fa9
JVM_IR KT-42020 special IdSignature for some fake override members
2020-12-15 12:56:45 +03:00
Dmitriy Novozhilov
b416c669b0
[TEST] Update testdata due to dropped COMMON_COROUTINE_TEST directive
2020-12-10 01:31:04 +03:00
Mikhail Glukhikh
94014ba3eb
Fir2IrLazyClass: don't generate non-f/o properties from superclass
2020-12-09 19:53:22 +03:00
Mikhail Glukhikh
9b0ada2b0f
[FIR2IR] Generate f/o overridden symbol with FakeOverrideGenerator
...
#KT-43669 Fixed
2020-12-09 19:53:21 +03:00
Ilmir Usmanov
d8d30263d3
IC Mangling: search parents for method if descriptor is fake override
...
Otherwise, the compiler generates call using old mangling scheme
because classfile does not contain the method.
2020-12-09 07:34:29 +01:00
pyos
6cb573cb45
[FIR] Import parents of companion objects first
...
Otherwise, information about members moved from companion objects to the
parent class (e.g. on JVM, companion object fields -> static fields in
parent class) will be incorrect.
2020-12-02 15:29:42 +03:00
Alexander Udalov
2fdc2dfaaf
JVM IR: fix regression in JvmStatic-in-object lowering for properties
...
References to properties with JvmStatic getter were not handled in
MakeCallsStatic (by overwriting dispatchReceiver with null) because the
property itself was not considered static.
#KT-43672 Fixed
2020-12-01 11:54:45 +01:00
pyos
1cccf2645f
FIR: serialize HAS_CONSTANT at least for const properties
...
Non-const properties may need them too with if the 1.4 feature
NoConstantValueAttributeForNonConstVals is disabled.
2020-11-30 13:05:28 +03:00
Georgy Bronnikov
6381d97aab
JVM_IR: compute classId on IR structures
2020-11-27 10:56:07 +03:00
Jinseong Jeon
eff4cec3e0
FIR2IR: convert annotations on delegated members
2020-11-23 19:36:10 +03:00
pyos
d980074624
FIR: deserialize the fun interface flag
2020-11-23 19:36:09 +03:00
pyos
20c7c4881d
FIR: fix @JvmPackageName
...
A single `JvmGeneratorExtensions` instance should be passed around.
2020-11-23 19:36:08 +03:00
Ilmir Usmanov
7761d30365
Minor. Add test to check fallback
2020-11-19 17:39:33 +01:00
Mikhail Glukhikh
6c1f5a4513
[FIR2IR] Cache functions/properties both by symbol & signature
2020-11-12 13:37:36 +03:00
Mikhail Glukhikh
8ace0d9ad1
[FIR] Replace local types with Any in deserializer
2020-11-12 13:37:35 +03:00
Pavel Punegov
4b3455dfa1
Set backend for the test
2020-10-13 22:02:16 +03:00
Mads Ager
afd710292a
[JVM_IR] Fix mangling of default argument stubs for internal methods.
...
The MethodSignatureMapper expected to be able to look at the body
of the default argument stub. That is of course not possible when
it is from an external dependency.
Instead, we go through the attribute owner to get to the method
the stub is a default argument adapter for.
2020-10-08 17:43:24 +02:00
pyos
1190457759
JVM_IR: fix copying of receivers when unboxing inline class parameters
...
If an extension receiver is copied into a normal parameter, this may
later cause default argument masks to be shifted.
2020-10-07 13:21:50 +02:00
Jinseong Jeon
49307e243c
FIR deserializer: load annotations on default accessors
2020-10-07 09:46:40 +03:00
Mikhael Bogdanov
5048471835
Properly check default kind on inheriting from old DefaultImpls scheme
2020-10-06 18:10:44 +02:00
Mikhail Glukhikh
76cdf97b6d
[FIR2IR] Set facade class for backing field properly #KT-42384 Fixed
2020-10-05 12:06:52 +03:00
Mikhail Glukhikh
112e07814e
[FIR] Mute test after rebase
2020-10-02 08:58:01 +03:00
Mikhail Glukhikh
cc88374fd7
[FIR] Add compile Kotlin against Kotlin test group
2020-10-02 08:57:55 +03:00
Alexander Udalov
ae448ececb
Minor, add compileKotlinAgainstKotlin test case for KT-41374
2020-09-07 19:41:37 +02:00
Steven Schäfer
6100166185
JVM IR: Fix special bridge generation with external Kotlin dependencies
2020-08-17 13:42:32 +02:00
Sergey Igushkin
f6356199d3
Fix typealias usage nullability and annotations lost in deserialization
...
Issue #KT-40824 Fixed
2020-08-06 15:46:54 +04:00
Sergey Igushkin
093d4b3108
Revert "Fix typealias usage nullability and annotations lost in deserialization"
...
This reverts commit 070848a1
2020-08-05 20:17:49 +04:00
Sergey Igushkin
070848a1c1
Fix typealias usage nullability and annotations lost in deserialization
...
This fixes a regression introduced by the commit 4b0da0688a which made
deserializer expand typealiases but didn't take nullability and use site
annotations into account.
Issue #KT-40824 Fixed
2020-08-05 00:19:52 +04:00
Mikhail Bogdanov
125c72cb8d
New default checks for mixed hierarchies
...
Old and new schemes
2020-07-24 12:10:04 +02:00
Mikhail Bogdanov
af3bda51ec
Fix compilation on mixed hierarchies in compatibility mode
2020-06-23 18:59:04 +02:00
Mikhail Bogdanov
9d48ecfac3
Make proper check for defaults on delegation to DefaultImpls
2020-06-19 11:57:36 +02:00
Alexander Udalov
77e479fda8
JVM IR: generate InnerClasses attribute for nested classes in annotation arguments
...
#KT-38853
2020-06-09 11:33:27 +02:00
Dmitry Petrov
cf70c83ab7
JVM: Update tests
2020-05-20 07:19:29 +03:00
Alexander Udalov
ed8efafa9b
Generate InnerClasses attribute for nested classes in annotation arguments
...
Otherwise we incorrectly try to load a nested class "A.B" as if it is a
top level class named "A$B" and fail.
#KT-38853 Fixed
2020-05-14 13:20:13 +02:00
Alexander Udalov
012ffa2993
Support new scheme of compilation of OptionalExpectation annotations
...
Instead of generating these annotation classes as package-private on
JVM, serialize their metadata to the .kotlin_module file, and load it
when compiling dependent multiplatform modules.
The problem with generating them as package-private was that
kotlin-stdlib for JVM would end up declaring symbols from other
platforms, which would include some annotations from package
kotlin.native. But using that package is discouraged by some tools
because it has a Java keyword in its name. In particular, jlink refused
to work with such artifact altogether (KT-21266).
#KT-38652 Fixed
2020-05-12 19:28:57 +02:00
Mikhail Bogdanov
1de0fbfc3a
Add delegation tests for new default modes
2020-04-15 15:25:03 +02:00
Mikhael Bogdanov
e45a892499
Support mixed compilation of new default with non-default or @JvmDefault
2020-04-09 07:37:32 +02:00
Mikhael Bogdanov
0c0bd67a6b
Add new tests
2020-04-09 07:37:30 +02:00
Mikhael Bogdanov
6c07dbf351
JVM_IR. Support type annotations
2020-01-29 16:59:55 +01:00
Mikhael Bogdanov
6e94eddb71
JVM_IR. Fix bridge generation
2020-01-27 14:53:36 +01:00
Mikhail Zarechenskiy
aa48f2e363
Unmute test about fun interfaces for JVM IR
2020-01-22 15:35:06 +03:00
Mikhail Zarechenskiy
58c235e722
Set up tests for fun interfaces for JVM backend for now
2020-01-17 19:37:48 +03:00
Mikhail Zarechenskiy
8350cf7d14
FIC: rename FunctionConversion -> FunctionalConversion
2020-01-17 19:37:47 +03:00
Mikhail Zarechenskiy
0e90d538df
FIC: propagate info about conversions for deserialized classes
2020-01-17 19:36:08 +03:00
Alexander Udalov
621936e951
Do not generate Throws attribute for delegated members from Kotlin interfaces
...
#KT-31763 Fixed
#KT-35834
2020-01-16 12:43:09 +01:00
Mikhael Bogdanov
52ac8d788d
Minor. Convert test
2020-01-09 14:00:13 +01:00
Mikhael Bogdanov
2ed0cb2a89
Support type annotations
...
#KT-35843 Fixed
2020-01-09 14:00:11 +01:00
pyos
6b5d92a693
IR: work around a bug in interface delegation descriptors
...
interface I {
fun f(x: Int = 1)
}
class C(val y: I) : I by y {
// implicit `override fun f(x: Int) = y.f(x)` has a default value for `x`
}
-- the only case where a function with overridden symbols has defaults.
2020-01-03 17:09:31 +01:00
Pavel Punegov
70111f8db1
Ignore test in Native backend
2019-12-25 13:40:38 +03:00