Mikhail Glukhikh
4a8f00bc7c
FIR2IR: support reading of isNewPlaceForBodyGeneration in lazy class
2021-11-26 09:18:11 +03:00
Dmitriy Novozhilov
75b6f7ca00
[FIR] Make FirRegularClass.companionObject companionObjectSymbol field
...
This is needed for two reasons:
1. Before this change companion object appeared in FirRegularClass
twice: in declarations list and in companionObject field. This may
trigger twice transform of it
2. It's very hard to implement generation of companion object by plugins
because if it is part of the tree then generated declaration must be
registered in FirProvider, which is inconsistent with other generated
declarations. Replacing FIR with symbol and removing custom logic of
visiting/transforming companion FIR allows us to just replace companionSymbol
in FirClass if plugin wants to generate it without any additional work
2021-11-23 15:01:05 +03:00
Ilya Chernikov
cad57e693f
FIR: introduce declaration origin for binary classes from source module
...
in particular for incremental compilation when module is only partially
recompiled.
#KT-49750 fixed
2021-11-19 08:36:15 +01:00
Ivan Kochurkin
646d156bde
[FIR] Reuse calculated values and clean up code
2021-11-10 19:07:27 +03:00
Mikhail Glukhikh
b76e61cbc5
FIR: set dispatch receiver type to constructor in deserialization
2021-10-20 12:17:03 +03:00
Dmitriy Novozhilov
bee44c6e0f
[FIR] Split :compiler:fir:resolve module into three different modules
...
Those modules are:
- :compiler:fir:providers, which contains Fir and Symbol providers,
scopes, and different utilities used by them
- :compiler:fir:semantics, which contains different abstractions and
entities which are used in resolution and in checkers
- :compiler:fir:resolve, which contains all stuff related to resolution
and inference
There are two pros of this change:
1. It may increase gradle build, because it allows to compile :fir:resolve
and :fir:checkers modules in parallel
2. Logic of working FIR (scopes, providers, DFA logic system, etc) is
now separated from logic of resolution phases, so for example checkers,
which are depend on scopes physically will not be able to run resolve
in any way
2021-10-18 11:10:47 +03:00
Dmitriy Novozhilov
6995ee9334
[FIR] Move type context and type approximator to separate session compontent
...
This is needed to decouple components which are related to type system
from type inference components
2021-10-18 11:10:47 +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
38877ba842
[FIR] Implement extension for providing additional type attributes
2021-10-12 17:26:32 +03:00
Ivan Kochurkin
c97587cc53
[FIR] Fix containingClassForStaticMemberAttr initialization
2021-10-03 17:10:05 +03:00
Denis.Zharkov
0aa8181960
FIR: Rename AbstractFirDeserializedSymbolsProvider -> AbstractFirDeserializedSymbolProvider
2021-09-23 16:58:25 +03:00
Dmitriy Novozhilov
7a347b11e3
[FIR] Use StandardClassIds instead of StandardNames everywhere it's possible
2021-09-15 17:11:30 +03:00
pyos
9fa3e2eb13
FIR: always load parents of nested classes first
2021-09-14 19:00:48 +03:00
pyos
30c8fa89f6
FIR: rename JavaSymbolProvider to JavaClassConverter
2021-09-14 19:00:46 +03:00
pyos
8ff79e002e
FIR: load parents of Java inner classes first, as before
2021-09-14 19:00:44 +03:00
pyos
cac0cf6a50
FIR: join KotlinDeserializedJvmSymbolsProvider and JavaSymbolProvider
...
This allows reusing class finder results.
2021-09-14 19:00:43 +03:00
Dmitriy Novozhilov
2e7564a21e
[FIR] Properly create FirAnnotation and FirAnnotationCall in all places
2021-09-13 13:53:12 +03:00
Dmitriy Novozhilov
4b662a42a1
[FIR] Rename FirAnnotationCall to FirAnnotation
2021-09-13 13:53:09 +03:00
Nikolay Lunyak
654ed3caf6
[FIR] Add propertySymbol to property accessors
2021-09-11 22:05:25 +03:00
Ivan Kochurkin
ee37768808
[FIR] Rename getClassLikeSymbolFqName to getClassLikeSymbolByClassId
2021-09-10 00:49:10 +03:00
pyos
ba1fc81b96
FIR: remove extra layers of caching above JavaSymbolProvider
...
There needs to be exactly one postcompute-aware cache in order to avoid
breaking recursive calls to getClassLikeSymbolByFqName.
2021-09-06 13:11:10 +03:00
Igor Yakovlev
2ff4f10ff0
[FIR IDE] Fix SOE for FIR deserialized declarations provider
2021-08-19 21:26:07 +02:00
Ilmir Usmanov
486c6b3c15
Remove obsolete experimental coroutines support
...
in compiler.
2021-08-13 22:31:30 +02:00
Denis.Zharkov
edf9f5e647
FIR: Minor. Clarify name for containingClassForStaticMemberAttr
2021-08-03 16:24:46 +03:00
Denis.Zharkov
956bf22191
FIR: Optimize AbstractAnnotationDeserializer
...
Do not search for annotation constructors unless we really need it
2021-08-03 16:24:45 +03:00
Ilya Chernikov
3b20ec46ef
FIR: Set correct modality to default accessors on deserialization
...
fixes some tests with new IrBuiltIns
2021-07-16 02:24:27 +03:00
Ilya Chernikov
80a710a5c5
FIR: implementing IrBuiltIns over FIR
2021-07-16 02:24:24 +03:00
Ivan Kochurkin
345152d198
[FIR] Add containingDeclarationSymbol to FirTypeParameter
2021-07-15 19:02:56 +03:00
Dmitriy Novozhilov
8df56af068
[FIR] Add forgotten settings of resolve phase
2021-07-13 10:31:22 +03:00
Andrey Zinovyev
de3f31cf78
[FIR] Partial implementation of DEPRECATION(_ERROR) diagnostics
...
No support for inheritance deprecations
and deprecations in qualifier's parts
2021-07-07 16:19:28 +03:00
Mikhail Glukhikh
c7877cb440
FIR: fix contract deserialization for assertIs<T>
2021-07-07 14:28:00 +03:00
Dmitriy Novozhilov
5816d7ae9f
[FIR] Rename FirStatusOwner back to FirMemberDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
f400477c70
[FIR] Remove generic parameter from FirDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
511e564b20
[FIR] Add specific symbols for value parameters and enum entries
...
Make FirVariableSymbol a sealed class
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
eca77324e0
[FIR] Move declaration comparators to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
725be466f0
[FIR] Move declaration utils to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
1324e9223f
[FIR] Make FirDeclaration an abstract class
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
b3e5c6e079
[FIR] Add symbol to all declarations. Get rid of FirSymbolOwner
2021-06-29 21:03:28 +03:00
Mark Punzalan
efe3f7b87e
FIR: Do not load inline flag when deserializing properties; there is
...
no `inline` flag for serialized properties.
In order to test this, I added the changes to FirRenderer to make sure
the flag is not loaded. However, this revealed that the `inline` status
was propagated upward to the `FirProperty` during raw FIR building,
causing test failures.
I removed the upward propagation for `inline`. I also removed it for
`external` because it is incorrect: `external` on properties (used in
JS) should be separate from `external` on accessors (used in JNI
interop for JVM). The `external` flags are also serialized separately
for properties and accessors.
2021-06-21 18:45:37 +03:00
Ivan Kylchik
ca1932b3a5
Set proper fir type for deserialized annotation's arguments
2021-06-07 15:35:03 +03:00
Ilya Kirillov
948d9390d6
FIR: "//TODO make thread safe" comment from FirBuiltinSymbolProvider
2021-06-03 00:09:03 +03:00
Ilya Kirillov
f361312e45
FIR: use FirCachesFactory in BuiltInsPackageFragment.tryGetSyntheticFunctionalInterface
2021-06-03 00:09:02 +03:00
Ilya Kirillov
ba2315430b
FIR: get rid of lateinit var in FirBuiltinSymbolProvider for thread safety
2021-06-03 00:09:01 +03:00
Ilya Kirillov
863156679d
FIR: use FirCachesFactory in BuiltInsPackageFragment.getClassLikeSymbolByFqName
2021-06-03 00:09:00 +03:00
Denis.Zharkov
d4586cefb4
FIR: Properly deserialize upper bounds of classes type parameters
...
^KT-46661 Fixed
2021-05-25 13:28:25 +03:00
Andrey Zinovyev
617d99faac
[FIR] Don't keep ref to whole class proto
...
Store module name only
2021-05-21 12:49:59 +03:00
Andrey Zinovyev
a121061df7
[FIR] Get module name for deserialized fir2ir classes
2021-05-21 12:49:58 +03:00
Denis.Zharkov
42d387925d
FIR: Refine makesSenseToBeDefinitelyNotNull
...
Make it work just the same as the analogue from FE 1.0
This change is necessary since many tests start failing after
we began reporting diagnostics after call completion
2021-05-20 17:24:12 +03:00
Dmitriy Novozhilov
43b075d452
[FIR] Add path normalization to LibraryPathFilter
2021-05-14 14:30:43 +03:00
Dmitriy Novozhilov
02c58b7a8f
[FIR] Refactor deserialized dependency providers and session factories with FirModuleData
2021-05-14 14:30:33 +03:00