Steven Schäfer
984e912f8d
JVM IR: Do not unbox Results in suspend lambda invoke methods (KT-46813)
2021-05-20 14:40:00 +02:00
Andrey Zinovyev
b1c8669b43
[FIR] Resolve infix calls to infix functions only
...
Implements INFIX_MODIFIER_REQUIRED diagnostics
2021-05-20 13:46:27 +03:00
pyos
b2ef854aa1
JVM_IR: support @JvmStatic transformations in LateinitLowering
...
#KT-46759 Fixed
2021-05-19 16:23:01 +03:00
pyos
f1f13b6e97
JVM_IR: do not evaluate receiver of static calls if it is pure
...
#KT-46802 Fixed
2021-05-19 16:22:59 +03:00
Dmitriy Dolovov
896929cb21
[Native] Support suspend functions as supertypes
...
^KT-46777
2021-05-19 16:09:38 +03:00
Ilmir Usmanov
9fe503eeb3
Minor. Add regression test
...
#KT-45685 Fixed
2021-05-19 12:45:26 +02:00
Dmitriy Novozhilov
e08df2c530
[Test] Add diagnostics and codegen tests with hmpp module structure
2021-05-19 00:52:31 +03:00
Dmitriy Novozhilov
06b2efe65f
[Test] Introduce new syntax for dependsOn dependencies
2021-05-19 00:52:27 +03:00
Dmitriy Novozhilov
47e258ef6e
[Test] Enable reporting errors from fronted to testdata of codegen tests
2021-05-19 00:52:25 +03:00
Dmitriy Novozhilov
df60e7368a
[Test] Fix syntax errors in few boxInline tests
2021-05-19 00:52:24 +03:00
Dmitry Petrov
851980e36f
JVM_IR KT-45103 optimize direct invoke for lambdas and callable refs
2021-05-18 22:20:12 +03:00
Andrey Zinovyev
709c127f1b
[IR] Distinguish super calls from other calls
...
Otherwise super call and virtual call to the same method get the same
map key in case of Fir2Ir IR generation
2021-05-18 19:32:23 +03:00
Steven Schäfer
60bc0f4baf
IR: Lower shared variables in enum entries (KT-46605)
2021-05-18 16:55:38 +02:00
Victor Petukhov
0d6764efc5
Process raw types during erasion properly
...
^KT-46670 Fixed
^KT-46476 Fixed
2021-05-18 17:38:52 +03:00
pyos
21f2b3fa2b
JVM: expect a continuation parameter in default suspend references
2021-05-18 10:48:31 +02:00
pyos
7eedcf75f9
Add tests for default inline suspend lambdas
...
Broken on JVM and JVM_IR
2021-05-18 10:48:31 +02:00
pyos
57c934987c
JVM_IR: try to load mangled invoke from default lambdas
...
Old compiler versions still won't be able to load default lambdas
generated by JVM_IR, but this way we avoid incorrect behavior of
function references taking inline class types that unbox to Any.
#KT-46601 Fixed
2021-05-18 10:48:31 +02:00
pyos
34ac232a82
Add a test for KT-46601
2021-05-18 10:48:31 +02:00
Dmitry Petrov
3a0e3798ec
JVM_IR KT-46597 fix receiver type for inlined callable reference
...
Receiver type is used by SyntheticAccessorLowering to determine class in
which a synthetic accessor should be generated.
2021-05-17 20:12:58 +03:00
Dmitry Petrov
d1322280dd
JVM_IR KT-46578 resolve fake overrides for fields
2021-05-14 16:20:22 +03:00
Mikhail Glukhikh
a255f44d6e
FIR2IR KT-46578 add overridden properties generation
2021-05-14 16:20:20 +03:00
Dmitry Petrov
53c1de172f
IR KT-46578 add IrProperty#overriddenSymbols
2021-05-14 16:20:18 +03:00
Andrey Zinovyev
dc9d5cdf35
[FIR] Handle of special getters when there is a kotlin super type
...
Special getter names (like Collection.size()) can be used only in Java
classes with all-java super-types
Because if there is a kotlin class (not interface) in
the middle, we 'materialize' special getters to properties.
2021-05-14 15:38:09 +03:00
Dmitriy Novozhilov
28e4721a89
[FIR] Check internal visibility in FirJvmModuleVisibilityChecker using module data
2021-05-14 14:30:35 +03:00
Andrey Zinovyev
84a7bdffe5
[FIR] Don't report MUST_BE_INITIALIZED* on unreachable properties
2021-05-14 12:41:18 +03:00
Alexander Udalov
8308f5d7d3
Create array instances of correct types in reflection
...
Based on #4168 .
#KT-44977 Fixed
Co-authored-by: Arkady Bazhanov <arkady.bazhanov@gmail.com >
2021-05-14 11:16:29 +02:00
Steven Schäfer
b2378620c3
JVM IR: Fix handling of anonymous initializers in inline classes ( #4372 )
...
Fixes KT-46554
2021-05-13 18:40:26 +02:00
Andrey Zinovyev
58c7aa9937
[FIR] Don't replace custom compareTo with default one in primitives
2021-05-13 18:04:43 +03:00
Alexander Udalov
7fb3f48c67
Add ClassDescriptor.getInlineClassRepresentation
...
This will be used at least in the JVM backend instead of the current
approach where we're loading the primary constructor's first parameter,
which isn't good enough since primary constructor can be private, and
we can't rely on private declarations in case they're declared in
another module.
2021-05-13 13:54:02 +02:00
Steven Schäfer
6aaff9dfb7
JVM IR: Handle overloaded values functions in MappedEnumWhenLowering
...
Fixes KT-46579.
2021-05-13 13:24:32 +02:00
Andrey Zinovyev
07e47140a6
[FIR] Treat unsigned numbers as primitives in constant checker
2021-05-13 10:11:59 +03:00
pyos
3fc2cc410c
JVM_IR: propagate reified type parameter usages from inline lambdas
...
...to whichever class they are inlined into, not the class they are
declared in (which is not the same if the lambda is crossinline).
#KT-46584 Fixed
2021-05-12 15:09:35 +03:00
Alexander Udalov
e079fb665e
JVM IR: fix inheritance from mutable collections of Int
...
For subclasses of `AbstractMutableList<Int>` which are not inline
classes, the special bridge `remove` had a parameter of type `Int`
(mapped to JVM primitive int) before this fix. The hack in
`MethodSignatureMapper` changed this type to `Int?`, yet the body of the
special bridge still loaded it as non-nullable, which resulted in
incorrect bytecode.
It looks like a part of this hack in `BridgeLowering` was made only for
inline classes which are subclasses of mutable collections. Supposedly
it should be extended to non-inline classes, so that `remove` special
bridge would have consistent IR by the time it reaches codegen.
#KT-46516 Fixed
2021-05-12 13:58:40 +02:00
Mads Ager
2c5a4dcb98
[JVM IR] Fix constant folding to use basic types always.
...
Fixes KT-46540.
2021-05-12 11:57:20 +02:00
pyos
d5d6736e67
PSI2IR/FIR2IR: do not approximate T!! before translation
...
This leads to weird effects when it's in a contravariant position,
because it's approximated by Nothing.
2021-05-12 11:37:48 +03:00
pyos
a37db99841
JVM_IR: remove a hack from InlineCallableReferenceToLambda
...
It breaks other things, the same problem is hit by FunctionReference,
and it's the translation layer's fault anyway.
#KT-46555 Fixed
2021-05-12 11:37:47 +03:00
pyos
cff74b31d4
JVM_IR: get unbound property reference receiver type from KProperty1
2021-05-12 11:37:45 +03:00
Ilmir Usmanov
c4ddf3530d
Use GETFIELD instead of unbox-impl inside inline classes
...
#KT-36783 Fixed
2021-05-12 06:50:06 +00:00
Mads Ager
d397efb2bd
[JVM IR] Copy attributes for JVM_STATIC_WRAPPERS.
2021-05-11 16:26:04 +02:00
Mads Ager
3db5ba98ad
[JVM IR] Do not insert Nothing handling in JvmStatic wrapper.
...
Fixes KT-46568.
2021-05-11 16:26:04 +02:00
Ilmir Usmanov
640d263ae1
Do not unbox nullable Result, since before usage it is coerced
...
#KT-46505
2021-05-11 05:49:24 +02:00
pyos
656c2496a6
JVM_IR: omit bound receiver in IrExpressionLambdaImpl parameters
...
and remove a hack intended to replace the missing type conversions this
caused.
#KT-46505 Fixed
2021-05-11 05:49:20 +02:00
Dmitry Petrov
ac0aaff611
JVM_IR KT-46562 don't use LambdaMetafactory for Serializable SAMs
...
TODO support serializable lambdas creation with LambdaMetafactory
2021-05-10 14:54:14 +03:00
Jinseong Jeon
bdfc879f00
FIR checker: report UNINITIALIZED_PARAMETER
2021-05-10 14:26:14 +03:00
Mikhael Bogdanov
cd7841ceed
Generate type annotations on class type parameters bounds
...
#KT-13228
#KT-46539 Fixed
2021-05-10 12:12:21 +03:00
Mikhael Bogdanov
cbe3c66156
Generate function type parameter annotations and type annotations on their bounds into bytecode
...
Generate type parameter annotation by default for `-Xjvm-target 1.8` and above
#KT-46539
#KT-13228
#KT-46545 Fixed
2021-05-10 12:12:18 +03:00
Mikhael Bogdanov
209ec68591
Make copy for disabled ir tests
2021-05-10 12:12:16 +03:00
Mikhael Bogdanov
5ff4d648f4
Render generic signature in type parameters tests
2021-05-10 12:12:15 +03:00
Mikhael Bogdanov
6182228de8
Render all annotations in type parameters tests
2021-05-10 12:12:14 +03:00
Alexander Udalov
d306d8a90e
JVM IR: cast indy-SAM receiver type from KFunctionN to FunctionN
...
#KT-46512 Fixed
2021-05-07 00:53:31 +03:00