Dmitry Petrov
e625bb375f
Temporarily mute unsigned tests in JVM_IR and FIR
2020-05-20 07:19:30 +03:00
Dmitry Petrov
2f82c5b6af
JVM: Fix default parameter values handling
...
When we generate call for 'foo', we make decision about invoking
a 'foo$default' too late, after the call arguments are generated.
If 'foo' was an override, and base class (interface) was generic,
'foo' in base class could have a different Kotlin and JVM
signature, so the arguments we generated could be generated wrong
(primitive or inline class values instead of boxes, see KT-38680).
Also, we always selected first base class in supertypes list,
which caused KT-15971.
Look into resolved call and see if we should actually call
'foo$default' instead of 'foo' when determining actual callable.
Overrides can't introduce default parameter values, and
override-equivalent inherited methods with default parameters
is an error in a child class. Thus, if we are calling a class
member function with a default parameters, there should be one
and only one overridden function that has default parameter values
and overrides nothing.
2020-05-20 07:19:29 +03:00
Dmitry Petrov
b5bd3604b1
JVM: Mangle functions returning inline class values
...
Mangling suffix is base64-encoded MD5 of ":<returnTypeFQN>"
2020-05-20 07:19:28 +03:00
Steven Schäfer
497df0922a
JVM IR: Fix corresponding properties in inline classes
2020-05-13 20:57:52 +02:00
Mikhail Glukhikh
f3e2dbf360
[FIR2IR] Add conversion of function annotations
2020-05-08 17:30:19 +03:00
Steven Schäfer
821aca984b
JVM IR: Take superQualifierSymbols into account when lowering inline classes
2020-05-07 11:44:09 +02:00
Jinseong Jeon
9a561f4a7c
FIR2IR: generate synthetic members for inline class
2020-04-30 13:09:53 +03:00
Mikhail Glukhikh
f98c73cb30
[FIR] Support FirMetadataSource.File in FIR2IR & serializer (KT-38156)
2020-04-28 07:35:04 +03:00
Jinseong Jeon
ef09850df8
FIR2IR: set superQualifierSymbol for super call
2020-04-27 11:50:26 +03:00
Jinseong Jeon
57fe01c375
FIR2IR: populate overriddenSymbols for overriding functions
...
#KT-38416 Fixed
2020-04-27 11:50:24 +03:00
Dmitry Petrov
318d4d17ba
KT-38337 Fix inline class value coercion in delegated members
2020-04-21 13:21:58 +03:00
Mikhail Glukhikh
96d8b0bea3
FIR: make KFunctionX derived from KFunction
2020-04-20 17:05:37 +03:00
Jinseong Jeon
c26adf53dd
FIR: resolve suspend lambda properly
2020-04-20 17:05:30 +03:00
Dmitriy Novozhilov
7f02d57d88
[FIR] Correctly detect super type in delegated constructor call
2020-04-17 12:37:29 +03:00
Dmitry Petrov
e2ee3d1d18
Unmute passing tests
2020-04-16 09:07:35 +03:00
Steven Schäfer
74791495d7
JVM IR: Box inline classes in covariant overrides (KT-30419)
2020-04-16 09:07:35 +03:00
Mikhail Glukhikh
e1c78b31a6
[FIR2IR] Convert explicit receiver in advance
2020-04-10 14:49:27 +03:00
Mikhail Glukhikh
5c758af0a6
[FIR] Use ScopeSession from resolve transformer in FIR2IR
2020-04-09 15:22:55 +03:00
Dmitry Petrov
ddf7f53118
Add more tests on inline class boxing in covariant overrides
2020-04-08 19:56:26 +03:00
Dmitry Petrov
9615b20e5d
Box inline class return value in lambdas (including suspend lambdas)
2020-04-08 19:56:26 +03:00
Dmitriy Novozhilov
8a2b39d647
[FIR] Add checking receivers of callable references
2020-04-08 10:38:45 +03:00
Dmitry Petrov
d5ace43614
KT-37986 Force boxing of inline class returned from function reference
...
KT-37998 Provide KotlinType for safe call
2020-04-04 01:32:45 +03:00
Dmitry Petrov
a422a12407
Minor: update testData
...
In BridgeTest::testFakeOverrideMisleadingImplementation,
order of generated bridges has changed slightly
(but the overall set of generated bridges remains the same).
2020-04-03 18:31:39 +03:00
Mikhail Glukhikh
f374c36cd2
[FIR2IR] Generate property extension receiver references properly
2020-04-03 13:31:15 +03:00
Mikhail Glukhikh
f3f7bf70f6
[FIR] Set delegate field receiver properly
2020-04-03 13:29:55 +03:00
Jinseong Jeon
3e6b38a921
[FIR] Fix type reference for 1st arg of GetClassCall
2020-04-02 12:42:50 +03:00
Mikhail Glukhikh
ffc22f4190
[FIR] Unmute two passing black box tests
2020-04-02 10:28:07 +03:00
Dmitry Petrov
24b8495e00
KT-30419 Box inline classes in return types of covariant overrides
...
Use boxed version of an inline class in return type position for
covariant and generic-specialized overrides.
Also fixes KT-35234 and KT-31585.
2020-04-01 22:59:14 +03:00
Jinseong Jeon
078cf02c8a
FIR: Provide dispatch receiver for 'field' according to property type
2020-03-30 16:57:53 +03:00
Mikhail Glukhikh
810b607a65
[FIR2IR] Provide receivers also for property callable references
2020-03-30 16:23:10 +03:00
Juan Chen
d8539fdde9
[FIR2IR] Add dispatch & extension receivers to callable references
2020-03-30 16:23:10 +03:00
Jinseong Jeon
de0c9a5c73
FIR: use dispatch receiver of the enclosing function if any.
2020-03-25 08:27:21 +03:00
simon.ogorodnik
f83c20065d
[FIR-test] Unmute passing tests, mostly fir2ir
2020-03-24 18:58:19 +03:00
Mikhail Glukhikh
0f0e5e603d
[FIR2IR] Use IR built-in types, their symbols & constructors directly
2020-03-18 17:09:36 +03:00
Dmitry Petrov
ade18d144a
KT-36810 Implement javaPrimitiveType intrinsic in JVM_IR
2020-03-17 22:56:45 +03:00
Mikhail Glukhikh
ed6c9e67a1
FIR2IR: convert qualifiers to companion objects, if any
2020-03-10 15:19:34 +03:00
Mikhail Glukhikh
cfa626ad77
FIR2IR: introduce conversion scope, remove dispatch receiver for lambdas
2020-03-04 16:55:31 +03:00
Dmitry Petrov
03913ff029
KT-33119 Generate IINC for primitive types only
2020-02-28 23:20:02 +03:00
Steven Schäfer
4ac45eb38b
JVM IR: Fix inline class constructors taking default values of inline class type.
2020-02-28 17:11:59 +01:00
Steven Schäfer
b173284d1d
Add tests for super calls in inline classes
2020-02-28 14:48:17 +01:00
Steven Schäfer
0fe8fec1d1
Mute FIR tests
2020-02-28 14:48:17 +01:00
Roman Artemev
e57d34dd9e
Make fix test:
...
- [JS IR] Unmute fixed tests
- [IrText] Update testdata
- [WASM] Temporary turn wasm test off
- [FirText] Temporary turn fit text tests off
- [JVM IR] Turn off klib jvm test
- [IR] Add new test
2020-02-14 18:22:17 +03:00
Roman Artemev
5004bb3636
[Psi2Ir] Fix generation of hashcode for generic inline class
2020-02-14 18:22:16 +03:00
Mikhail Glukhikh
12c001f491
FIR: unmute two additional black-box tests
2020-02-11 23:14:51 +03:00
Steven Schäfer
07737f8fc6
JVM IR: Fix BridgeLowering
2020-02-07 18:44:50 +03:00
Steven Schäfer
5f6af58aeb
JVM IR: (Un)mute tests and add more tests for bridge generation
2020-02-07 18:44:50 +03:00
Steven Schäfer
66cbe3b1a8
JVM IR: Remove IrReplacementFunction
2020-02-07 18:44:50 +03:00
Mikhail Zarechenskiy
b7c43fc7db
Refactoring: move test folder out of "inline classes" folder
...
It was added there by mistake
2020-01-17 19:36:08 +03:00
Mikhail Zarechenskiy
0ee977c42e
FIC: Support base version of conversions in JVM backend
...
Proper support for JVM backend will be in the further commmits
2020-01-17 19:36:02 +03:00
Mikhail Zarechenskiy
55935cc98a
FIC: introduce language feature, modifiers checks and basic tests
2020-01-17 19:36:00 +03:00