SokolovaMaria
15aaf3a078
Copy typeParameters from original declaration to the exportedDefaultStubFun before substitution of type parameters
2021-02-15 23:17:11 +03:00
Dmitry Petrov
b1ab64e854
JVM_IR KT-44483 argument adaptation is already done in PSI2IR
2021-02-15 19:41:39 +03:00
Simon Ogorodnik
3909e3c54c
Decouple TypeCheckerContext and TypeSystemContext
2021-02-15 18:28:58 +03:00
Dmitry Petrov
b262d09a81
JVM_IR KT-44627 fix bridge signature for parameter with primitive bound
2021-02-15 17:19:33 +03:00
Dmitry Petrov
afeb7e18cd
JVM_IR indy: fix non-null assertions on indy lambda parameters
...
KT-44278 KT-26060 KT-42621
2021-02-12 16:52:31 +03:00
Dmitry Petrov
43b1711010
JVM_IR indy: extract LambdaMetafactoryArguments code to separate file
...
KT-44278 KT-26060 KT-42621
2021-02-12 16:52:31 +03:00
Dmitry Petrov
7564c9bb8c
JVM SamWrapperClassesAreSynthetic language feature
...
KT-44278 KT-26060 KT-42621
2021-02-12 16:52:31 +03:00
Dmitry Petrov
3ebeca5852
JVM_IR: use indy SAM conversions in jvmTarget 1.8+, fix bridges
...
KT-44278 KT-26060 KT-42621
2021-02-12 16:52:30 +03:00
Mikhael Bogdanov
e795c2c407
Generate proper hashCode for fun interface wrappers
...
#KT-44875 Fixed
2021-02-12 11:28:17 +01:00
Mikhail Glukhikh
791f589127
SymbolTable: Rewrite nasty code with if without else in elvis RHS
2021-02-11 11:48:34 +03:00
Roman Artemev
67671afab4
[Plugin API] Fix missed call in resolveBySignatureInModule
2021-02-11 11:44:09 +03:00
Dmitry Petrov
d0f26abd18
JVM_IR KT-44798 don't generate multiple stubs with same signature
2021-02-10 09:09:28 +03:00
Dmitriy Novozhilov
e54f31cc2f
[IR] Remove useless init block from IrLazyFunction
...
This block was accidentally added in aaa3fa58 in debug purposes
2021-02-09 16:04:42 +03:00
Igor Chevdar
6f9bcf249b
[IR] Supported inlining of adapted references + tests
2021-02-09 17:23:19 +05:00
Ilmir Usmanov
275fef94fe
JVM_IR. Do not mangle callable reference constructor call
...
#KT-44703 Fixed
2021-02-09 12:31:11 +01:00
Roman Artemev
d97a2b13c0
[Plugin API] Add API to load top level declaration by its signature
...
- request from JP Compose, #KT-44100
2021-02-09 11:56:20 +03:00
Roman Artemev
79f986bb75
[IR] Fix IrType equality in case of complex variance
...
- reimplement type capturing on top of pure IrCaptureType
- add captured type substitutor
- fix #KT-43831
2021-02-09 11:33:34 +03:00
Roman Artemev
4ed93d3dee
[IR] Add IrCapturedType into IR type system
...
- support it in TypeSystemContext
2021-02-09 11:33:33 +03:00
Georgy Bronnikov
1664eec7e4
FIR: report lowering time from JvmIrCodegenFactory
2021-02-09 10:59:35 +03:00
Ilya Goncharov
76b124a9c0
[JS IR] Method of any is exported
...
^KT-44616 fixed
2021-02-08 13:40:39 +03:00
Ilya Goncharov
6c051b2be4
[JS IR] Override method are not exported
...
[JS IR] Add test with jsexport overrides not js export method with stable name
^KT-44616 fixed
2021-02-08 13:38:30 +03:00
Ilmir Usmanov
cd189c0812
JVM_IR. Do not unbox Result in inline lambda
...
Since JVM_IR generates inline lambdas differently from old backend,
in this case, it generates them as normal functions.
Thus, there is no need to unbox the lambda argument.
#KT-44671 Fixed
2021-02-04 20:22:20 +01:00
Svyatoslav Kuzmich
cdb488149f
[JS IR] Namer improvements
...
- Compute and store local names locally when translating a body.
It is a step towards separate JS generation and hopefully reduces memory usage.
- Use stable mangled names for member names. Needed for separate JS generation.
- Add `abstract class IrNamerBase` with just 3 abstract methods to simplify
creating new IrNamer implementations.
- Fix O(N^2) of findFreshName when it is called wtih the same name suggestion a lot of times.
- Refactor NameTables initialisation: factor out some functions and use descriptive names.
- Use StringBuilder in sanitizeName
2021-02-04 16:17:01 +03:00
Svyatoslav Kuzmich
8be7e6064e
[JS IR] Optimize sanitization
...
- Use direct function call instead of lambda
- Don't do anything for already valid names
2021-02-04 16:16:00 +03:00
Svyatoslav Kuzmich
2a424ad2af
[IR] Make isExternal mutable and accessible via common interface
...
JS IR: Mark all effectively external declarations as external to access it
directly instead of computing it every time
2021-02-04 16:15:33 +03:00
Svyatoslav Kuzmich
924a7b009b
[JS IR] Fix object getInstance visibility
2021-02-04 15:41:22 +03:00
Andrey Zinovyev
95140f35f8
[parcelize] Fix codegen for generic classes
...
Replace type arguments with star projection in static methods
Fix IR function generation
^KT-42652 Fixed
2021-02-04 15:11:51 +03:00
Alexander Udalov
acd8c4503b
Do not generate $suspendImpl for JvmDefault functions in interfaces
...
#KT-44533 Fixed
2021-02-03 21:37:58 +01:00
Ilmir Usmanov
02f845636e
JVM_IR: Box generic Result parameter in suspend lambda
...
#KT-44527 Fixed
2021-02-03 19:18:27 +01:00
Victor Turansky
7523a5e97f
KT-40235 Fix external interface companion support
2021-02-03 20:36:24 +03:00
Denis.Zharkov
5a55d56320
IR: Fix offsets for value parameters for bridges
...
Previously, offsets from super class parameter have been used
and they might belong to a different file and those offsets are irrelevant
to the current file
2021-02-03 15:05:22 +03:00
Dmitry Petrov
ab20a8ffff
JVM_IR indy-lambdas: minor updates and fixes
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:25 +03:00
Dmitry Petrov
088448043a
JVM_IR indy-lambdas: don't use indy for big arity lambdas
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:24 +03:00
Dmitry Petrov
d94912ed62
JVM_IR indy-lambdas: initial implementation and tests
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:22 +03:00
Igor Chevdar
0bc386cb08
[IR] Fixed bug with reflectionTarget evaluation
2021-02-03 15:26:40 +05:00
Igor Chevdar
bb8bf28b8b
[PSI2IR] Set reflectionTarget for all adapted references
2021-02-03 15:26:40 +05:00
Ilya Goncharov
d6e74b9620
[JS IR] Use local scope for SAM if there are scopes
...
[JS IR] Use private for top level sam wrappers and local otherwise
^KT-44433 fixed
2021-02-03 12:13:52 +03:00
Mads Ager
6a959fefd0
[JVM_IR] Fix accessibility bridges for static protected fields.
...
Super-qualifiers have to be taken into account. Otherwise, too
few accessibility bridges will be generated which can lead to
binary compatibility issues.
2021-02-02 12:46:08 -08:00
Mikhael Bogdanov
5b64ceceb3
JVM_IR. Generate additional checkcast for when/try epressions to avoid frame map problems on reification
2021-02-02 14:32:50 +01:00
Roman Artemev
59551eb037
[Plugin API] Provide diagnostic API for IR plugins
2021-02-02 12:05:35 +03:00
Roman Artemev
daa65a2fff
[KLIB] Handle linkage error
...
Do not crash compiler with ugly stacktrace in case of misconfiguration.
Report relatively friendly diagnostic message instead
2021-02-02 12:05:35 +03:00
Roman Artemev
bf67308cc2
[KLIB] Use IrMessageLogger in klib linker to report errors
2021-02-02 12:05:35 +03:00
Roman Artemev
6891ad0dfc
[IR] Add IrMessageLogger interface for diagnostic reporting from IR
2021-02-02 12:05:35 +03:00
Roman Artemev
c5068b7d45
[KLIB] Drop unused logger
2021-02-02 12:05:34 +03:00
Roman Artemev
484b884d04
[KLIB] Make IrModuleDeserializer's printable
2021-02-02 12:05:34 +03:00
Roman Artemev
24d82c63e0
[JS IR] Commonize CLI error reporting
...
Use general `AnalysisResult.CompilationErrorException` instead of
custom JsIrCompilationError to indicate about unsuccessful compilation
- Drop JsIrCompilationError
2021-02-02 12:05:34 +03:00
Roman Artemev
ba5193870e
[IR] Drop unused language version settings parameters from DependenciesGenerator
2021-02-02 12:05:34 +03:00
Dmitry Petrov
4ec369ac5b
JVM_IR fix special bridge generation for inline classes
2021-02-01 17:57:58 +03:00
pyos
bd3bc13e75
JVM_IR: give loops somewhat more debuggable labels
2021-02-01 15:51:31 +01:00
pyos
0f2ca5d84c
JVM_IR: support non-local break/continue in the inliner
...
Not in the frontend or psi2ir, though, so this not a complete
implementation of KT-1436, but rather a part of it that is currently
useful to make other code compile. In particular, lambdas passed to
array constructors and JVM-style `assert` are inlined as IR returnable
blocks, which are then converted into `do { ... } while (false)` loops,
so non-local returns from them become non-local `break`s.
2021-02-01 15:51:31 +01:00