Dmitrii Gridin
31b36ee766
[LL FIR] introduce lazyResolveRecursively API
...
FirFile after KT-56683 has its own phases and resolution logic,
so we should have a separate API for lazy resolution for FirFile and for
the entire file
^KT-61296 Fixed
2023-09-13 20:26:50 +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
Kirill Rakhman
d9da3973bb
[FIR] Remove redundant overloads of allowsToHaveFakeOverride
2023-09-12 10:46:46 +00:00
Marco Pennekamp
f64cc184f4
[FIR] Refactoring: Introduce base implementations for delegating scopes
...
- The implementations of some FIR scopes contain a significant amount of
delegation to some original scope. This pollutes the implementation of
such scopes and makes them harder to read.
`FirDelegatingContainingNamesAwareScope` and `FirDelegatingTypeScope`
can be used as base classes which delegate by default.
2023-09-08 11:13:28 +00:00
Ilya Kirillov
030250d387
[FIR] fix resolution ambiguities between weakly compatible expect and actual
...
There is a corresponding example inside the stdlib,
see `kotlin.text.startsWith`.
JVM and common counterpart are weakly-compatible
as the actual declaration has default arguments,
which results in `ExpectActualCompatibility.Incompatible.ActualFunctionWithDefaultParameters`
This commit allows such cases.
^KT-61732 fixed
2023-09-06 16:30:28 +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
Alexander Udalov
1d5ade1166
K2: minor, remove misleading FirMemberDeclaration.containerSource
...
"Container source" means "the source of the container". So, if you
called this extension on a class (`FirClassLikeDeclaration`), it was
reasonable to assume that you would get the source of its _containing
class_, whereas the function actually returned the source of the class
itself.
Instead of inventing another name for this function, I've decided to
inline and remove it because it has only one usage.
2023-09-06 08:05:34 +00:00
Kirill Rakhman
40fadac060
[FIR] Remove incorrect code generation comment
2023-09-04 08:05:07 +00:00
Dmitriy Novozhilov
e4a51dfa1b
[Serialization] Don't report errors on properties from supertypes
...
^KT-53926 Fixed
2023-09-01 09:35:43 +00:00
Dmitriy Novozhilov
b4bc659008
[FIR] Update documentation of AbstractPredicate about matching local declarations
...
^KT-52449 Obsolete
2023-09-01 09:35:43 +00:00
Nikolay Lunyak
b25a67a50e
[FIR] Prohibit statement-like expressions in expression context
...
^KT-61067 Fixed
2023-09-01 09:30:28 +03: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
Nikolay Lunyak
77feb86a85
[FIR] Report the use of inline on primary constructor parameters
...
^KT-59664 Fixed
2023-08-25 12:23:56 +00:00
Kirill Rakhman
844ab4ee74
[FIR] Remove FirExpression.typeRef
...
#KT-61312 Fixed
2023-08-25 10:16:41 +00:00
Kirill Rakhman
7fde5af7f8
[FIR] Rename FirExpression.coneType to resolvedType
2023-08-24 07:54:57 +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
8d7c5b375e
[FIR] Replace usages of FirExpression.typeRef with coneTypeOrNull
...
#KT-59855 Fixed
2023-08-24 07:54:57 +00:00
Kirill Rakhman
f60d81097c
[FIR] Adapt FIR renderer after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
bc27feace4
[FIR] Adapt FIR utilities after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
7223cd1bf3
[FIR] Update custom FIR implementations after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
b24afa0177
[FIR] Regenerate FIR tree after FirExpression.coneTypeOrNull introduction
...
#KT-59855
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
Kirill Rakhman
270aa1656f
[FIR] Add default parameter values to ClassId.constructClassLikeType
...
#KT-59855
2023-08-24 07:54:56 +00:00
Kirill Rakhman
9ec814b7ad
[FIR] Replace FirExpression.typeRef.coneType (and variants) with FirExpression.coneType
...
#KT-59855
2023-08-24 07:54:56 +00:00
Mikhail Glukhikh
5ee50f50b5
K2/LC: set hasBackingField to false for expect properties
...
#KT-61173 Fixed
2023-08-23 13:48:48 +00:00
Roman Efremov
8aa3ccd342
[FIR] Store matched actual class members inside FIR attribute
...
Currently, there is only attribute `ExpectForActualAttributeKey`
where mapping is stored only for source declarations with `actual`
modifier. But we need mapping of all class members, including classes
which were actualized via `actual typealias` or fake override members.
This data will be needed for the annotation checker in subsequent
commits.
^KT-60668
^KT-60936
2023-08-22 12:14:42 +00:00
Nikolay Lunyak
c33f1cda69
[FIR] Report MISSING_CONSTRUCTOR_KEYWORD
...
^KT-59407 Fixed
2023-08-22 09:13:16 +00:00
Nikolay Lunyak
f238ffa4bf
[FIR] Make FirErrorConstructor a FirDiagnosticHolder
2023-08-22 09:13:16 +00:00
Ilya Kirillov
bdfc68468f
[FIR] optimize direct allocation of empty ConeTypeProjection arrays
...
On the snapshot from KTIJ-26260 empty ConeTypeProjection arrays take about 10mb
2023-08-18 11:36:42 +00:00
Kirill Rakhman
80200fc3c5
[FIR] Replace type variable types with error types in lambda completion
...
#KT-54568 Fixed
#KT-59882
2023-08-15 08:04:19 +00:00
Ivan Kochurkin
9ec7218af6
[FIR] Add isCommon property to FirModuleData
...
It will be used for correct OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE reporting
2023-08-10 17:46:08 +00:00
Dmitrii Gridin
2688398361
[FIR] FirTypeUtils: add debug info
2023-08-08 12:04:46 +00:00
Kirill Rakhman
09f895efe6
[FIR] Implement VERSION_REQUIREMENT_DEPRECATION diagnostics
2023-08-08 09:28:08 +00:00
Kirill Rakhman
65ea9697ab
[FIR] Let DeprecationsProvider.getDeprecationsInfo accept LanguageVersionSettings
2023-08-08 09:28:08 +00:00
Yan Zhulanow
4fbbe9f274
[LL API] Add in-body modification tests for code fragments
2023-08-07 16:22:03 +00:00
Nikolay Lunyak
c2ad475153
[FIR] Render outer type parameters differently
2023-08-04 11:20:40 +00:00
Nikolay Lunyak
4a9ba1c9ac
[FIR] Expand typealiases when checking deprecations
...
^KT-59901 Fixed
2023-08-04 10:11:57 +00:00
Dmitrii Gridin
2f57916869
[FIR] add replaceStatements to FirScript
...
It is required to implement StateKeeper for scripts
statements should be MutableOrEmptyList to avoid CME
^KT-60728
^KT-60519
2023-08-02 16:50:45 +00:00
Dmitrii Gridin
f549712912
[FIR] FirCallableSymbol: introduce calculateReturnType
...
It will help to avoid copy-pasted logic there it is needed
^KT-60728
2023-08-02 16:50:45 +00:00
Kirill Rakhman
38a54549ff
[FIR] Fix serialization of empty varargs in annotations in KLIBs
...
#KT-59249 Fixed
2023-08-01 15:31:18 +00:00
Kirill Rakhman
487c3e80bb
[FIR] Rename toResolvedFunctionSymbol to toResolvedNamedFunctionSymbol
2023-08-01 15:31:18 +00:00
Dmitrii Gridin
da71a152cd
[FIR] update FirRenderer for scripts
...
^KT-60728
2023-07-28 17:49:14 +00:00
Dmitriy Novozhilov
69a35970eb
[FIR] Introduce different synthetic origins for FIR declarations
...
This is needed to be able to precisely distinguish different synthetic
declarations (like fields for delegates and functions for data classes)
in fir2ir
2023-07-28 13:59:38 +00:00
Kirill Rakhman
ed6948959c
[FIR] Make rendering of properties for diagnostics more user-friendly
...
#KT-60137 Fixed
2023-07-28 13:28:06 +00:00
Ivan Kylchik
34f8228441
[Test] Reuse runResolution and runCheckers from analyze.kt
2023-07-27 22:50:20 +00:00
Ivan Kochurkin
2eba7da5eb
[FIR] Rename FirArrayOfCall to FirArrayLiteral
2023-07-27 17:53:44 +00:00
Nikolay Lunyak
713c2136cc
[FIR] Prohibit class literals with empty left-hand side
...
^KT-59165 Fixed
2023-07-27 10:28:52 +00:00