Sergej Jaskiewicz
84bd12c667
[FIR generator] Factor out field printer into the common code
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
bca35c0015
[FIR/IR generator] Add default arguments to TypeVariable constructor
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
c5f519f7c7
[FIR/IR generator] Commonize visitor printing logic
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
Also, don't use kotlinpoet for generating IR visitors (KT-61703)
2023-11-02 23:05:18 +00:00
Vladimir Sukharev
0fb853a995
[FIR] Fix Disappeared CONTRACT_NOT_ALLOWED
...
https://youtrack.jetbrains.com/issue/KT-60004/K2-Disappeared-CONTRACTNOTALLOWED
Merge-request: KT-MR-12613
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-11-02 20:47:05 +00:00
Sergej Jaskiewicz
325b152efa
[FIR generator] Remove unused class ImplementationWithArg
2023-10-26 17:33:59 +00:00
Sergej Jaskiewicz
7b7bcb8ffa
[FIR/IR generator] Introduce ImportCollector
...
This class enables printing the import list in generated files
in a smarter way.
Also, refactor `Importable` interface hierarchy, namely, don't inherit
`TypeRef` from `Importable`, since we have types like `TypeRef.Star`
which are not really importable.
Replace the `Importable#typeWithArguments` property with
the `TypeRef#render` method to utilize `ImportCollector` while rendering
types.
2023-10-26 17:33:59 +00:00
Ivan Kochurkin
bb937a8a21
[FIR] Initialize annotations in FirErrorTypeRef
...
^KT-62447 Fixed
^KT-62628 Fixed
2023-10-24 10:53:33 +00:00
Sergej Jaskiewicz
9eacdb3314
[FIR generator] Print builder property name in generated classes' KDocs
...
Just like we do when generating the IR tree
2023-10-24 10:29:43 +00:00
Sergej Jaskiewicz
7e7f4811bd
[FIR/IR generator] Add kDoc property to AbstractElement & AbstractField
2023-10-24 10:29:43 +00:00
Sergej Jaskiewicz
f2bb988e68
[FIR/IR generator] Replace getTypeWithArguments with a property
...
The `notNull` of that method was never used.
2023-10-20 10:49:20 +00:00
Sergej Jaskiewicz
de4e39906c
[FIR/IR generator] Use TypeRef for working with types in fields
...
- Don't inherit `AbstractField` from `Importable`, because it really
is not
- Remove the `arguments` and `nullable` properties from `AbstractField`.
Both properties can be derived from the field's `typeRef`.
- Make `AbstractField`'s `typeRef` property of type
`TypeRefWithNullability` instead of just `TypeRef`, because fields
can always be nullable.
2023-10-20 10:49:20 +00:00
Sergej Jaskiewicz
f30bf0e7e2
[FIR generator] Remove unused customType property from SimpleField
2023-10-20 10:49:20 +00:00
Sergej Jaskiewicz
75b509c185
[FIR/IR generator] Share visitor-related properties between FIR & IR
2023-10-20 06:41:12 +00:00
Sergej Jaskiewicz
04c5ac0eb6
[FIR/IR generator] Factor out adding pure abstract element as parent
2023-10-19 12:00:25 +00:00
Sergej Jaskiewicz
5798021e4b
[FIR/IR generator] Refactor element parents
...
- Move `elementParents` and `otherParents` properties
to `AbstractElement`
- Use `elementParents` instead of `parentRefs` where needed
2023-10-19 12:00:25 +00:00
Sergej Jaskiewicz
417aa236fb
[FIR/IR generator] Factor out printing the preamble in generated files
2023-10-18 18:42:40 +00:00
Sergej Jaskiewicz
8c6da9fddb
[FIR/IR generator] Deduplicate interface/abstract class configuration
2023-10-18 12:39:39 +00:00
Sergej Jaskiewicz
9a4c28498c
[FIR generator] Deduplicate the logic of needPureAbstractElement
2023-10-18 11:12:55 +00:00
Sergej Jaskiewicz
7ab4ca6f51
[IR generator] Inherit Element from AbstractElement
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-10-16 22:56:36 +00:00
Sergej Jaskiewicz
f9d17a2d51
[IR generator] Inherit Field from AbstractField
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-10-16 22:56:36 +00:00
Roman Efremov
423f4ca5f0
[FE, IR] Check compatibility of annotations set on type usages in expect and actual declarations
...
This includes checking of annotatins set on:
- value parameter types
- type parameter bound types
- extension functions receiver types
- function return types
- class super types
Fix in `defaultParams_inheritanceByDelegation_positive.kt`
is needed because of problem in resolution of implicit return types
(KT-62064), which leads to crash in annotation checker, because it
expects resolved return type.
MR: KT-MR-12245
^KT-60671 Fixed
2023-10-16 10:48:08 +00:00
Roman Efremov
fbdc64cdad
[FIR] In tree generator make it possible to add custom super types
...
...to element.
MR: KT-MR-12245
^KT-60671
2023-10-16 10:48:08 +00:00
Sergej Jaskiewicz
df0f86bf8d
[FIR generator] Use a single list of parent TypeRefs for elements
...
(Instead of storing the list of parent elements + the map of parent
arguments)
2023-10-13 10:11:38 +00:00
Sergej Jaskiewicz
04c0cc5a5c
[FIR generator] In properties always print get() ... on new line
...
This is to unify the code formatting with IR classes.
2023-10-12 11:45:55 +00:00
Sergej Jaskiewicz
4507615c69
[FIR generator] Print accept method's body on new line
...
This is to unify the code formatting with IR classes
2023-10-12 11:45:55 +00:00
Sergej Jaskiewicz
04ac4b71a3
[FIR generator] Replace AbstractElement with ElemenOrRef
...
In the FIR generator, the `AbstractElement` class was used to
represent either an element type without type arguments applied
(using the `Element` subclass), or an element type with applied type
arguments (using the `ElementWithArguments` subclass).
Instead, it is more logical to use the `Element` class to always
represent a non-parameterized element type, and for a parameterized
element type use the `ElementRef` class, just like we do
in the IR generator.
2023-10-12 11:36:20 +00:00
Sergej Jaskiewicz
a909a28f29
[FIR generator] Use more type-safe field builders
2023-10-12 08:24:12 +00:00
Sergej Jaskiewicz
8be455649c
[FIR generator] Use TypeVariable instead of TypeArgument for TPs
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-10-12 08:24:12 +00:00
Sergej Jaskiewicz
8798fdeb82
[FIR generator] Use TypeRef for denoting types
...
(instead of `Type` and `Importable`)
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-10-11 11:16:08 +00:00
Sergej Jaskiewicz
59129501cb
[FIR/IR generator] Remove unused properties of Type
2023-09-22 19:46:14 +00:00
Sergej Jaskiewicz
d86161bccb
[FIR generator] Remove Type#firType property as it has no effect
2023-09-22 19:46:14 +00:00
Sergej Jaskiewicz
d5394db185
[FIR generator] Factor out AbstractElement to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-22 19:46:14 +00:00
Sergej Jaskiewicz
977e316489
[FIR generator] Factor out TypeArgument to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-22 19:46:14 +00:00
Dmitriy Novozhilov
9e5ee3afa0
[FE] Add isLocal name to ClassId constructor calls where it needed
2023-09-21 12:40:44 +00:00
Sergej Jaskiewicz
88c308dfd3
[FIR generator] Don't print extra space in the where clause
2023-09-20 15:39:40 +00:00
Sergej Jaskiewicz
0dd01279da
[FIR generator] Move Implementation.Kind to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz
e62343427d
[FIR generator] Move Field and FieldContainer to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz
982b9221b4
[FIR generator] Move ArbitrarilyImportable class to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz
7a6bffaabb
[FIR generator] Move Importable interface to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Kirill Rakhman
6ec419edb7
[FIR] Update FIR schema to add opt-in to FirExpression.coneTypeOrNull
...
#KT-61367
2023-09-14 10:03:01 +00:00
Iaroslav Postovalov
fd2954a8d3
Move DummyDelegate to :compiler:util
...
Deleted DummyDelegate from a pair of usages across the project, and
moved it to :compiler:util module to avoid further duplicates
2023-09-13 09:51:13 +00:00
Dmitriy Novozhilov
f203681ffa
[FIR] Make extensionReceiver and dispatchReceiver nullable
...
Get rid of FirNoReceiverExpression
^KT-59650 Fixed
2023-09-06 09:25:22 +00:00
Mikhail Glukhikh
3ff2c7d6f7
K2: introduce custom Enum.entries migration checkers
...
Related to KT-56623, KT-56587
#KT-59344 Fixed
2023-08-31 13:29:02 +00:00
Brian Norman
b55fda0c55
[FIR] Create CFG for files to track top-level property initialization
...
In order to properly analyze top-level property initialization, a
control-flow graph must be created for FirFiles. This change adds the
foundation for the file CFG and updates body resolve to create the CFG.
Checking the CFG for proper initialization is separated into a following
change to ease code review.
KT-56683
2023-08-31 12:50:52 +00:00
Dmitriy Novozhilov
6169834bb3
[FIR] Make FirResolvedDeclarationStatus.modality non nullable
...
^KT-58764 Fixed
2023-08-31 09:38:44 +00:00
Kirill Rakhman
844ab4ee74
[FIR] Remove FirExpression.typeRef
...
#KT-61312 Fixed
2023-08-25 10:16:41 +00:00
Kirill Rakhman
ab6d87a1a2
[FIR] Introduce deprecated FirExpression.typeRef property for compatibility with Compose
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
a5cff6ae36
[FIR] Make type of special expressions immutable
2023-08-24 07:54:57 +00:00
Kirill Rakhman
bec39a9258
[FIR] Change FIR structure by replacing FirExpression.typeRef with cone type
...
#KT-59855
2023-08-24 07:54:56 +00:00
Nikolay Lunyak
f238ffa4bf
[FIR] Make FirErrorConstructor a FirDiagnosticHolder
2023-08-22 09:13:16 +00:00