93 Commits

Author SHA1 Message Date
Ivan Kylchik 61fabc02ba [K2] Resolve bodies of const properties during IMPLICIT_TYPES_BODY_RESOLVE
This is required to implement constant evaluator on the FIR level.

#KT-64151
2024-03-13 16:53:59 +00:00
Denis.Zharkov 232c3aeadc K2: Fix PCLA breaking change when using a bare type on a type variable
See the change at docs/fir/pcla.md and the kdoc
at `getAndSemiFixCurrentResultIfTypeVariable` for clarification

^KT-64840 Fixed
2024-03-12 10:22:11 +00:00
Ivan Kylchik ada47eb110 [K2] Add new resolve phase CONSTANT_EVALUATION
During this phase, the compiler will evaluate initializers of
const properties and defaults of annotation's constructor.
Evaluation results will be stored in corresponding attributes.

#KT-64151
2024-03-06 11:35:41 +00:00
Nikita Nazarov 407448d8e3 [JVM] Implement new inlined variable naming format
^KT-65478 fixed
2024-02-23 23:59:13 +01:00
Dmitrii Gridin 3ce3c50b92 [LL FIR] update low-level-api-fir.md doc 2024-02-21 20:16:15 +00:00
Dmitrii Gridin 7a13023b14 [FIR] add KDoc for FirResolvePhase 2024-02-15 19:28:10 +00:00
Denis.Zharkov cabf7e4fae Introduce documentation for PCLA implementation
^KT-65637 Fixed
2024-02-09 19:47:35 +00:00
Pavel Kunyavskiy 01c16ed736 Add documentation on planned inline changes.
^KT-64570
2024-01-22 13:39:49 +00:00
Dmitriy Novozhilov 16b1caff7e [Doc] Update part of _Code authoring guideline_ about TODO processing 2024-01-19 09:59:14 +00:00
Dmitriy Novozhilov f12b77c359 [Doc] Describe the process of introducing new TODOs in the codebase 2024-01-12 10:21:32 +00:00
Pavel Kunyavskiy f50fab65cc [IrActualizer] Update doc on how the actualization process works. 2023-12-15 15:38:10 +00:00
Nikita Bobko 5c8d55fba7 Update docs/fir/k2_kmp.md wrt KT-62590 2023-11-06 14:41:28 +00:00
Anastasiia Spaseeva a991a13295 Reproducible builds: convert instruction to the template
^Relates to KTI-1222
2023-11-01 12:59:13 +00:00
Simon Ogorodnik 024e94a479 [K2] Document KMP implementation in the K2 Compiler
Add comprehensive documentation explaining the implementation and
functions of the Kotlin multiplatform (KMP) support in the K2 Compiler.
2023-10-12 12:27:54 +00:00
Vsevolod Tolstopyatov d8a5d3e938 Introduce code_authoring_and_core_review.md
The corresponding rationale and the goals of the proposals can be found here: https://docs.google.com/document/d/1PWBlAvd1VTVoR0DLcf8At5qRTpG4--tGhLOdlOcS3H4


Co-authored-by: Simon Ogorodnik <Simon.Ogorodnik@gmail.com>


Merge-request: KT-MR-11375
Merged-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
2023-09-20 17:26:31 +00:00
Denis.Zharkov a02cb16fb2 K2: Rewrite delegate inference
The main idea is getting rid of stub types and using just type variables
See more detailed description at docs/fir/delegated_property_inference.md

The problem with stub types is that they need really special treatment
in many places, and on the other hand, there are no clear contracts on
how they should work (that regularly leads to bugs like KT-59529)

^KT-61060 Fixed
^KT-61075 Fixed
^KT-61077 Fixed
^KT-59529 Fixed
^KT-61633 Related
^KT-61618 Related
^KT-61740 Related
^KT-59107 Related
^KT-61747 Related
^KT-61077 Related
^KT-61781 Related
2023-09-08 07:11:48 +00:00
Margarita Bobova affe0754bf Add ChangeLog for 1.9.0 and move ChangeLog for 1.8.X to a separate file 2023-08-09 12:26:03 +00:00
Simon Ogorodnik 3e6b42083b FIR: Fix leakage of type variables in builder inference for lambdas returning Unit
When BI/incomplete call is present in return argument, it will be
added to the main call-tree, leading to requirement violation in
`ConstraintSystemCompleter.getOrderedAllTypeVariables`
as after `FirBuilderInferenceSession.inferPostponedVariables` it will
be completed, and its type variables couldn't be found anymore

In K1, we actually do the same, but we are able to find type variables
of such calls due to architecture difference:
In K2, `getOrderedAllTypeVariables` uses FIR as the main source to
lookup
In K1, `getOrderedAllTypeVariables` uses resolution atom tree, where
candidate/CS of the call is still available after
`inferPostponedVariables`

In fact, all incomplete calls were analyzed in FULL mode according to
the contract of `FirBuilderInferenceSession.addPartiallyResolvedCall`.
Thus, it means we normally shouldn't add them to the main call-tree, but
accidentally do it as incomplete calls contain non-completed candidate

This particular commit addresses the problem partially, only
in cases when the expected return type for the lambda is Unit and when
the incomplete call is located in the last expression of the lambda

In such cases, we can skip the call from the last expression completely,
since all potential calls there were analyzed in FULL mode,
and couldn't introduce any useful info to the CS of the main call-tree

^KT-54294
2023-05-17 10:50:36 +00:00
Simon Ogorodnik 4d1ea06c17 FIR. Document current builder inference algorithm 2023-05-10 10:40:04 +00:00
Margarita Bobova ea2145415d Move ChangeLog for 1.7.X to a separate file 2023-04-25 13:37:32 +02:00
Nikolay Krasko a5876811d8 Instruction for 1.8.20 build 2023-04-17 13:33:50 +00:00
Nikolay Krasko 6afaa13eab Add docker file for building Kotlin build environment
KTI-1119
2023-02-06 10:01:53 +00:00
Bogdan Mukvich 71a80c5e36 Reproducible build should not run as root inside docker 2023-01-17 09:33:30 +00:00
Nikolay Krasko 3d4af8e1ab Remove mentioning of maven.zip in 1.8.0 instruction
KTI-1091
2023-01-11 16:46:08 +00:00
Nikolay Krasko 1451ef74c2 Additional note in instruction for reproducibility 1.8.0 2023-01-10 18:06:38 +01:00
Nikolay Krasko 4c925d0588 Instructions for building 1.8.0 2022-12-30 11:13:40 +00:00
Nikolay Krasko 03d3885eff Instruction for building 1.8.0-Beta release 2022-11-24 12:55:06 +00:00
Nikolay Krasko e02395fa61 Instruction for building 1.7.21 release 2022-11-24 12:55:05 +00:00
Nikolay Krasko 4c16d7597a Instructions for building 1.7.20 release 2022-11-22 20:29:21 +00:00
Nikolay Krasko 2ea0cdf46d Rules for commit messages
Part of KTI-944 about adding automatic checks to commit messages.
2022-10-12 09:39:51 +00:00
Svyatoslav Scherbina 527e8dde27 docs: add more links for contributing to Kotlin/Native 2022-10-10 14:55:36 +00:00
Margarita Bobova 71e617a7f5 Add changelog for 1.7.0 2022-06-14 13:07:32 +02:00
Jinseong Jeon 4700ad3e9e Docs: fix links to sources in FIR plugins 2022-06-08 11:28:56 +02:00
Dmitriy Novozhilov 7048cac770 [FIR] Move FirPredicateBasedProvider to :compiler:fir:tree module 2022-06-07 14:12:17 +00:00
Ilya Kirillov b5ad6f5db4 [analysis api] move analysis session classes to separate packages, use KtAnalysisApiInternals to mark internal API 2022-05-12 16:15:14 +02:00
Ilya Kirillov ef0160c026 [analysis api] rename ValidityToken -> KtLifetimeToken 2022-05-12 16:15:02 +02:00
Kristoffer Andersen 4614ca94c5 Update analysis-api.md 2022-05-04 02:27:23 +02:00
Shumaf Lovpache 729afb6149 Docs: fix typos and references
Fix reference to fir_basics
2022-02-10 13:55:11 +01:00
Dmitriy Novozhilov 086d874fe2 Docs: Fix links to sources in FIR Plugins documentation 2022-01-31 16:28:03 +03:00
Ilya Kirillov d38e797399 Docs: Analysis API Usage document 2022-01-28 18:14:41 +01:00
Ilya Kirillov b67e011930 Docs: fix small typos 2022-01-28 18:14:40 +01:00
Ilya Kirillov 5e6827e65e Docs: change analysis docs structure 2022-01-28 18:14:40 +01:00
Dmitriy Novozhilov ee180a37a6 Docs: add basic FIR plugin API documentation 2022-01-24 11:11:07 +03:00
Ilya Kirillov d1335d3f44 Docs: add basic FIR compiler documentation
Originally written by Dmitriy Novozhilov
2022-01-21 15:56:47 +01:00
Ilya Kirillov c80d9d8dfb Docs: introduce some basic docs and contribution guides for Analysis API 2022-01-11 14:33:24 +03:00
Margarita Bobova 3b98c330fd Add changelog for 1.5.32 2021-12-01 14:34:20 +03:00
Margarita Bobova 7f3b546288 Add changelog for 1.6.0 2021-11-18 17:39:02 +03:00
max-kammerer 71d59f89cb Fix type 2021-06-29 12:54:43 +02:00
Andrei Klunnyi 72d188efd9 Update contributing guide
After Kotlin-IDE-plugin is moved to intellij repository, this commit
updates contributing.md guide with corresponding references.
Other than that brief information on current repository is provided.
2021-06-29 10:46:29 +00:00
Margarita Bobova eaed67df29 Move 1.4.x changelog to a separate file 2021-06-17 14:50:36 +03:00