Commit Graph

87184 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 6712191538 [FIR] Update plugin prototype testdata 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 20e35167c8 [FIR] Add simple IR body generator to FIR plugin prototype 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 e3579389ee [FIR] Create IR text tests for declarations generators 2021-10-12 17:26:36 +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 0f076e16ed [FIR] Update plugin testdata 2021-10-12 17:26:35 +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 ea93d23dca [FIR] Move fir plugin tests to diagnostics sub directory 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 9baf10cfcc [Build] Remove forgotten comment from build config 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 760943f0e1 [FE] Make setter of CallableId.classId private
Fact that `classId` is `var` is detail of implementation,
  so there is no reason to expose its setter to public API
2021-10-12 17:26:24 +03:00
Dmitriy Novozhilov e87f7c5cb4 [FIR] Update dummy checker in allopen plugin 2021-10-12 17:26:24 +03:00
Dmitriy Novozhilov 84dab9230e [FIR] Adapt AllOpenVisibilityTransformer to work with unresolved annotation arguments 2021-10-12 17:26:23 +03:00
Dmitriy Novozhilov e011ca183d [FIR] Fix FirPluginAnnotationsResolveTransformer after recent compiler changes 2021-10-12 17:26:22 +03:00
Dmitriy Novozhilov 3da2fbf02d [FIR] Add FIR plugin tests to list of all testData directories 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
Sergej Jaskiewicz 1f0b691ab6 [JS] Fix some JS prettyprinting
- Print a newline after `default` case in `switch`es
- Print a newline after `if` blocks without corresponding `else` blocks
2021-10-12 13:38:56 +00: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
Elena Lepilkina 9ad62eb1fd [K/N][perf] Added more buildSrc files in excluding list in performance infrastructure 2021-10-12 11:35:00 +00:00
Alexander Likhachev 8c8b311d9f [Gradle, JS] Detect classpath changes in KotlinJsDce
Now -Xdev-mode-overwriting-strategy=older compiler argument is handled on Gradle side to detect incremental changes to increase performance
#KT-35640 Fixed
2021-10-12 09:31:09 +00:00
Alexander Likhachev 5db4ec15d2 [Gradle, JS] Add test for KT-35640 2021-10-12 09:31:09 +00:00
Alexander Likhachev a0e6fb03f0 [Gradle] Do not register compilation outputs in clean task
Calculations of compilation outputs implicitly requires compile task configuration to execute `clean` task. This implicit configuration works unstable in parallel builds. We probably fine with the fact that outputs that are configured to be outside of build directory will not be cleaned by `clean` task
#KT-48046 Fixed
2021-10-12 09:29:57 +00:00
Dmitriy Novozhilov f0aba5e892 [Test] Update parcelize bytecode testdata 2021-10-12 10:30:13 +03:00