Dmitry Petrov
b946a284b0
JVM_IR move 'arrayOf' handling to JvmBuiltInsLowering
...
FunctionReferenceLowering creates calls to 'arrayOf' functions that
should be processed later.
2021-10-12 21:12:44 +03:00
Dmitry Petrov
27e5655480
JVM_IR minor: more JvmIrBuilder helpers
2021-10-12 21:12:43 +03:00
Mark Punzalan
4f0b52b653
FIR: Transform annotations on type arguments during body resolve.
2021-10-12 18:56:32 +03:00
Dmitriy Novozhilov
fce6efe412
[FIR] Validate generated member declarations
2021-10-12 17:26:44 +03:00
Dmitriy Novozhilov
b4d955838e
[FIR] Properly use FirContainingNamesAwareScope in all places
...
Split some delegating scopes to basic and name aware implementations
Also get rid of getContainingCallableNamesIfPresent and
getContainingClassifierNamesIfPresent functions because they are not
needed anymore
2021-10-12 17:26:43 +03:00
Dmitriy Novozhilov
5f625f3c16
[FIR] Fail with error if multiple plugins generated classes with same classId
...
In future we can turn this failure to some proper diagnostic
2021-10-12 17:26:42 +03:00
Dmitriy Novozhilov
af6d6ec2b9
[FIR] Properly collect constructors from class in presence of plugins
2021-10-12 17:26:41 +03:00
Dmitriy Novozhilov
9a802e7cd7
[FIR] Return symbols instead of FIR from FirPredicateBasedProvider
2021-10-12 17:26:40 +03:00
Dmitriy Novozhilov
1cfe4deda9
[FIR] Remove unused methods from FirPredicateBasedProvider
2021-10-12 17:26:40 +03:00
Dmitriy Novozhilov
6a14d91dbd
[FIR] Change predicate providing API for FIR extensions
...
Predicate declaration was split into two parts:
- registering any number of predicates which are used in specific extension
- special checks for declaration applicability for each specific extension
2021-10-12 17:26:39 +03:00
Dmitriy Novozhilov
fc1f2e9c72
[FIR2IR] Run IrGenerationExtensions after fir2ir stage
2021-10-12 17:26:38 +03:00
Dmitriy Novozhilov
b3768a201f
[FIR2IR] Create special IrDeclarationOrigin for generated declarations
2021-10-12 17:26:37 +03:00
Dmitriy Novozhilov
233b9f1242
[FIR] Generate IR for generated FIR declarations
2021-10-12 17:26:37 +03:00
Dmitriy Novozhilov
b454fcc1e0
[FIR] Save IR dumps to .ir.txt files instead of .txt in tests
...
This is needed to avoid clashes between different dumps from different
handlers
2021-10-12 17:26:36 +03:00
Dmitriy Novozhilov
c60ba51f8f
[FIR] Include generated declarations into FIR dump in tests
...
Also include non root package directive of FirFile to dump
2021-10-12 17:26:34 +03:00
Dmitriy Novozhilov
79f1779d89
[FIR] Add methods to collect all class and callable ids from extensions
...
They will be needed for generating IR for all declarations from plugins
2021-10-12 17:26:33 +03:00
Dmitriy Novozhilov
38877ba842
[FIR] Implement extension for providing additional type attributes
2021-10-12 17:26:32 +03:00
Dmitriy Novozhilov
32709151c3
[FIR] Move base FirExtension infrastructure to :fir:tree module
...
This is needed for type attribute extension which is used not only
from :resolve module but also from :(de)serialization modules
2021-10-12 17:26:32 +03:00
Dmitriy Novozhilov
e26cd74b16
[FIR] Fix applying generated supertypes for classes without explicit supertypes
2021-10-12 17:26:31 +03:00
Dmitriy Novozhilov
26fa772846
[FIR] Add ability to generate members and nested classifiers for existing classes
2021-10-12 17:26:30 +03:00
Dmitriy Novozhilov
9bfa6c54b8
[FIR] Inherit FirContainingNamesAwareScope from FirScope
...
This is needed to simplify FirScope hierarchy, because in
fact all inheritors of `FirContainingNamesAwareScope` were
inheritors of `FirScope` too
2021-10-12 17:26:29 +03:00
Dmitriy Novozhilov
f3a9d70eb6
[FIR] Add ability to generate members and nested classifiers for generated classes
2021-10-12 17:26:29 +03:00
Dmitriy Novozhilov
270962e176
[FIR] Make KotlinScopeProvider a session component
2021-10-12 17:26:27 +03:00
Dmitriy Novozhilov
4f764c28cb
[FIR] Use proper caches in FirDeclaredMemberScopeProvider
2021-10-12 17:26:27 +03:00
Dmitriy Novozhilov
15abd839ed
[FIR] Rewrite algorithm of generating declarations by plugins
...
Before there was separate global stage which asks extensions
to generate new declarations. Now it is changed to provider
like requests, so extensions will decide do they have declarations
with specific classId/callableId or not
2021-10-12 17:26:26 +03:00
Dmitriy Novozhilov
e011ca183d
[FIR] Fix FirPluginAnnotationsResolveTransformer after recent compiler changes
2021-10-12 17:26:22 +03:00
Dmitriy Novozhilov
91624dd841
[FIR] Move call of status transform extensions to FirStatusResolver
...
It makes more sense to run status transformer extension
right in status resolve stage, because it reduces
number of compiler stages
2021-10-12 17:26:21 +03:00
Dmitriy Novozhilov
6d42914e56
[FIR] Migrate fir plugin prototype tests to new test infrastructure
2021-10-12 17:26:18 +03:00
Dmitriy Novozhilov
e56c87a17a
[Build] Move utils for generation JUnit 5 tests to :generators module
2021-10-12 17:26:18 +03:00
Dmitriy Novozhilov
48aa063b21
[FIR] Cleanup utils for creating FirTotalResolveProcessor
2021-10-12 17:26:16 +03:00
Mikhail Glukhikh
7243d30869
Split property use-site targets during FIR building
2021-10-12 16:22:58 +03:00
Mikhail Glukhikh
2a9a1dbb86
FIR: allow diagnostic collection on default property accessors
2021-10-12 16:22:56 +03:00
Mikhail Glukhikh
39fe457f91
Add test reproducing KT-49087 and KT-49069
2021-10-12 16:22:54 +03:00
Ilmir Usmanov
d0a70e5cc0
Minor. Use safe cast in isStaticInlineClassReplacementDelegatingCall
2021-10-12 15:09:07 +02:00
pyos
226306ac83
IR: check whether local declarations need to throw after Nothing return
...
^KT-48982 Fixed
2021-10-12 15:09:05 +02:00
Dmitry Petrov
a213dad9ab
JVM_IR add more tests for specialized generics and reification
2021-10-12 15:56:38 +03:00
Dmitry Petrov
0098103376
JVM_IR minor: update test
2021-10-12 15:56:36 +03:00
Dmitry Petrov
b184c72e3d
JVM_IR make proxy funs synthetic, fix some typos
2021-10-12 15:56:35 +03:00
Dmitry Petrov
e0c2a2efd7
JVM_IR Minor: remove outdated TODO
2021-10-12 15:56:34 +03:00
Dmitry Petrov
005d3b1f6f
JVM_IR pass reified type parameters in indy SAM conversion proxy
2021-10-12 15:56:33 +03:00
Dmitry Petrov
40fe67880b
JVM_IR wrap function into a proxy if indy SAM-conversion becomes valid
2021-10-12 15:56:31 +03:00
Svyatoslav Kuzmich
a6afb7cb41
[JS IR][Wasm] Preload (Suspend)FunctionN needed in lowerings
...
This reverts commit 15d178d850d15675ee39cbd833d13f4c8aed83ff.
2021-10-12 08:42:01 +03:00
Svyatoslav Kuzmich
3bce0cc055
[Wasm] Support coroutines
...
- Reuse JS IR Suspend function lowering
- Fix types
- Disable reinterpretCast-based optimization for inline
classes
- Add basic support to Wasm stdlib
- Explicitly transform suspend functions into regular functions
with continuations
- Clean suspend function handling from JS IR codegen
2021-10-12 08:42:01 +03:00
Svyatoslav Kuzmich
e3f826d1b9
[Wasm] Handle IrClass::thisReceiver receiver outside of constructors
2021-10-12 08:42:01 +03:00
Svyatoslav Kuzmich
bcab78599f
[Wasm] Fix result of statically-know type operators
...
- Use subclass with erased types to match runtime behavior
- Handle casting to Nothing
2021-10-12 08:42:01 +03:00
Svyatoslav Kuzmich
15acc412ba
[Wasm] Update testdata after coroutines support
2021-10-12 08:42:00 +03:00
Roman Artemev
686e5e7f2b
[TEST] Fix test data.
...
Due to JS IR runner doesn't override stdout test fails.
Remove using stdout from test.
2021-10-11 21:19:28 +03:00
Sergej Jaskiewicz
360c0170be
fixup! Mute the test on WASM
2021-10-11 15:57:53 +00:00
Sergej Jaskiewicz
9ee8f1e961
[JS IR] Enable StringTrimLowering for JS IR backend
2021-10-11 15:57:53 +00:00
Mikhail Glukhikh
9a5058849e
Delay ExtensionPropertyTypeParameterInDelegate forbiddance to 1.7
...
Related to KT-24643
2021-10-11 13:04:39 +03:00