Anton Bannykh
bdca4b45bd
JS: inliner supports extra argument caused by suspend conversions
2020-05-14 14:33:12 +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
Mikhail Glukhikh
cdac6157a9
[FIR2IR] Force loading Java SAM from external classes
2020-05-14 14:07:40 +03:00
Jinseong Jeon
89a6ecd77d
[FIR] Update argument mapping while transforming integer operator.
2020-05-14 13:42:07 +03:00
Juan Chen
858731cac8
[FIR] add support for varargs in delegated constructor calls
...
Also add support for spread operators as named arguments.
2020-05-14 13:42:07 +03:00
Mikhail Glukhikh
3652ac9354
[FIR2IR] Mute 2 failing BB tests
...
Looks like both tests are failing because now only classes from
'kotlin.*' are considered "external" and generated with declarations.
2020-05-14 13:40:37 +03:00
Mikhail Glukhikh
d8398bb0ab
[FIR2IR] Handle external declaration parents more accurately
...
This allows us to set declaration parent immediately,
not at some moment after its creation
2020-05-14 13:40:37 +03:00
Mikhail Glukhikh
6beee004a3
[FIR2IR] Take callables from scope in external declaration generator
...
This commit fixes 2 more unmuted BB tests
2020-05-14 13:40:37 +03:00
Mikhail Glukhikh
12c0cbee94
[FIR2IR] Don't enter same class twice while override searching
...
This commit fixes 21 unmuted BB tests after previous one
2020-05-14 13:40:37 +03:00
Mikhail Glukhikh
00fcb6cb02
[FIR2IR] Minor refactoring of populateOverriddenSymbols
2020-05-14 13:40:36 +03:00
Mikhail Glukhikh
e7e80be34a
[FIR2IR] Populate overridden symbols even for !isOverride
...
Before this commit we considered !isOverride as a sign that
function / field / accessor has no overridden symbols.
However, it's false for deserialized, because isOverride
is always false there.
This commit fixes 68 BB tests but breaks 25 BB tests (not yet muted)
2020-05-14 13:40:36 +03:00
Jinseong Jeon
bcf277d885
Add comments for generators about data/inline class (in psi2ir and fir2ir) and annotations (fir2ir).
2020-05-14 09:41:11 +03:00
Jinseong Jeon
e844c59e7e
FIR2IR: filter correct use-site target for value parameter annotations.
2020-05-14 09:41:11 +03:00
Jinseong Jeon
76e679a6ca
FIR2IR: refactor annotation generations.
2020-05-14 09:41:11 +03:00
Jinseong Jeon
931ba4892a
FIR2IR: split property annotations according to use-site targets.
2020-05-14 09:41:11 +03:00
Steven Schäfer
9bc8fdcb3c
JVM IR: Validate corresponding properties
2020-05-13 20:57:52 +02:00
Steven Schäfer
13f15a702b
JVM IR: Remove corresponding property hacks from MethodSignatureMapper
2020-05-13 20:57:52 +02:00
Steven Schäfer
497df0922a
JVM IR: Fix corresponding properties in inline classes
2020-05-13 20:57:52 +02:00
Steven Schäfer
c41e71b1c5
JVM IR: Merge PropertiesToFieldsLowering and JvmPropertiesLowering
...
This is necessary in order to fix the corresponding property symbols,
since PropertiesToFieldsLowering broke them intentionally.
2020-05-13 20:57:52 +02:00
Steven Schäfer
d5c2707c2c
JVM IR: Fix corresponding properties in JvmStaticAnnotationLowering
2020-05-13 20:57:52 +02:00
Steven Schäfer
24b28f80cb
JVM IR: Fix corresponding properties in BridgeLowering
2020-05-13 20:57:52 +02:00
Steven Schäfer
4a2b5df9fa
JVM IR: Fix corresponding properties for default impls redirections
2020-05-13 20:57:52 +02:00
Steven Schäfer
1fafbb8d72
Minor: Remove duplicate IrSetField builder
2020-05-13 20:57:52 +02:00
simon.ogorodnik
86683e94fc
[FIR] Fix cfg crash with multiple postponed arguments
2020-05-13 19:20:02 +03:00
Anton Bannykh
5b63dad1c3
JS IR: fix incremental compilation for stdlib
2020-05-13 19:15:18 +03:00
Anton Bannykh
b5f31a3d76
JS IR: make CodeCleaner more conservative
...
The CodeCleaner treated all expressions with type `Nothing` as
non-terminating. This is not true for cases when return type is generic,
e.g:
```
fun <T> foo(): T = Any() as T
foo<Nothing>() // type: Nothing
```
This change makes the CodeCleaner more conservative, so that it doesn't
treat to such functions as non-terminating. This eliminates the need
to change call types from Nothing to Unit in
KotlinNothingValueExceptionLowering.
2020-05-13 16:30:47 +03:00
pyos
8809abdbac
JVM_IR: do not handle Nothing in suspend tail call bridges
...
Else they wouldn't be tail call, would they?
2020-05-13 05:54:37 -07:00
Ilmir Usmanov
0acaedef92
Fix attribute clash between STATIC_INLINE_CLASS_REPLACEMENT and original
...
Attributes are used to name continuation classes and are generated
before inline classes processing. During the processing, for override
functions in inlined classes, the compiler generates
STATIC_INLINE_CLASS_REPLACEMENT function with body of the override.
The override's body is replaced with delegating call to
STATIC_INLINE_CLASS_REPLACEMENT. However, since we need to keep the name
of the continuation class, we copy attributes from the override to
STATIC_INLINE_CLASS_REPLACEMENT. This leads to attribute clash during
AddContinuationLowering.
So, to fix the issue, do not use the attribute of
STATIC_INLINE_CLASS_REPLACEMENT in original->suspend map.
As an optimization, do not generate continuation for the override
function.
2020-05-13 14:53:37 +02:00
Alexander Udalov
d2a691d157
Minor, ignore failing box tests for light analysis
2020-05-13 13:54:51 +02:00
Mark Punzalan
99856afc31
ForLoopsLowering: Use @file:OptIn(ExperimentalUnsignedTypes::class)
...
instead of annotating declarations.
2020-05-13 13:54:35 +02:00
Mark Punzalan
b5b361bb09
Add tests for nullable loop variable in for-loop over unsigned progression.
2020-05-13 13:54:35 +02:00
Mark Punzalan
b85da8411d
ForLoopsLowering: Convert ProgressionType from enum to sealed class and
...
move more logic into the class.
This refactoring simplifies their usage with fewer `when` switches and
passing around of Symbols.
2020-05-13 13:54:35 +02:00
Mark Punzalan
177967258b
ForLoopsLowering: Eliminate construction/boxing/unboxing of UInt/ULong.
...
This needs further cleanup to encapsulate more logic into ProgressionType.
2020-05-13 13:54:35 +02:00
Mark Punzalan
e1120f49d8
ForLoopsLowering: Reduce unnecessary temporary variables.
2020-05-13 13:54:35 +02:00
Mark Punzalan
eaddd02e9b
Mute/unmute failing/passing unsigned progression tests for FIR.
2020-05-13 13:54:35 +02:00
Mark Punzalan
f249e7f5e9
ForLoopsLowering: Add additional bytecode text tests for optimization of
...
unsigned progressions.
2020-05-13 13:54:35 +02:00
Mark Punzalan
0e6af517d7
Generate tests for unsigned progressions using
...
GenerateSteppedRangesCodegenTestData.
2020-05-13 13:54:35 +02:00
Mark Punzalan
03ef3724f4
ForLoopsLowering: Add support for unsigned progressions.
2020-05-13 13:54:35 +02:00
Jinseong Jeon
6034fcdc46
FIR2IR: apply SAM conversion to arguments if needed
2020-05-13 11:28:48 +03:00
Alexander Udalov
0ce16b9d8c
Support non-reified type parameters in typeOf in JVM and JVM_IR
...
#KT-30279 Fixed
2020-05-13 10:04:28 +02:00
Alexander Udalov
6fb40878c4
Minor, do not report "no reflection" error on KTypeParameter
...
Since an implementation of KTypeParameter for stdlib is coming, an
instance of which can be obtained through `typeOf`.
2020-05-13 10:04:27 +02:00
Alexander Udalov
37cf7316bc
Do not calculate maxStack size manually when generating typeOf
2020-05-13 10:04:27 +02:00
Alexander Udalov
82603f3853
Move some codegen utilities to callableReferenceUtil.kt
...
Some of them were declared in ClosureCodegen near generation of function
references, and some in PropertyReferenceCodegen, which was confusing.
2020-05-13 10:04:27 +02:00
Alexander Udalov
4fe8754ba1
Minor, extract generation of typeOf out of inlineIntrinsics.kt
2020-05-13 10:04:27 +02:00
Alexander Udalov
ea413cefb4
Remove TypeOfChecker for JVM frontend
...
This is needed to support typeOf with non-reified type parameters.
#KT-30279
2020-05-13 10:04:26 +02:00
Mikhail Glukhikh
0c0f4ef3db
FIR CFG: handle 'Dead' properly in edge kind merging
2020-05-13 10:37:08 +03:00
Mikhail Glukhikh
41f241f608
FIR CFG: merge DFA + CFA edge in Simple edge
2020-05-13 10:37:08 +03:00
Mikhail Glukhikh
32cfee50e0
FIR CFG: remove duplicating lambda enter -> exit connection
2020-05-13 10:37:08 +03:00
Mikhael Bogdanov
5ef37148ea
Add flag for proper array convention with default args calls
2020-05-13 08:51:57 +02:00
Mikhail Bogdanov
adc770b604
Process default arguments in array convention calls
...
#KT-16520 Fixed
2020-05-13 08:51:57 +02:00