Commit Graph

58 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 8324f499cd [FIR] Fix serializing annotation metadata on setters value parameters 2021-03-05 13:00:11 +03:00
Mads Ager 8e9dfc23b6 FIR: Take targeted annotations into account for metadata
Getter/setter targeted annotations were not correctly reflected
in the kotlin metadata which made them not work with
kotlin-reflect.
2021-03-03 08:48:28 +03:00
Dmitriy Novozhilov abd1c8fb30 [FIR] Move sealedInheritors declaration data to :fir:tree module 2021-02-09 16:04:40 +03:00
Dmitriy Novozhilov 38437fb036 [FIR] Rename session.firSymbolProvider to session.symbolProvider
to avoid visual conflicts with `session.firProvider`
2021-02-09 16:04:39 +03:00
Mikhail Glukhikh 1c80c5610d FIR: fix serialization of accessor with source-level annotations 2021-01-28 13:21:16 +03:00
Mikhail Glukhikh 4cd6266bce FIR: fix suspend type serialization 2021-01-23 10:56:40 +03:00
Mikhail Glukhikh afe335e504 FIR: serialize ExtensionFunctionType attribute 2021-01-23 10:56:37 +03:00
Mikhail Glukhikh 3787018e40 [FIR] Fix parameter index storage in contract serializer 2021-01-18 08:28:01 +03:00
Stanislav Erokhin d24331955e Rename FirConstKind to ConstantValueKind and move it to compiler.common 2021-01-14 12:12:25 +01:00
pyos 41f56729f9 FIR: serialize correct fqnames for local classes 2020-12-10 20:52:48 +03:00
pyos 1cccf2645f FIR: serialize HAS_CONSTANT at least for const properties
Non-const properties may need them too with if the 1.4 feature
NoConstantValueAttributeForNonConstVals is disabled.
2020-11-30 13:05:28 +03:00
Mikhail Glukhikh c171dafd91 FIR serializer: always normalize visibility
Without this commit we fail on package-private or so in serializer
2020-10-21 11:53:10 +03:00
Jinseong Jeon d09ccdbe3c FIR serializer: distinguish typealias classifier 2020-09-30 12:21:57 +03:00
Jinseong Jeon b4ac2f5b55 FIR serializer: special handling of Continuation 2020-09-30 12:21:57 +03:00
Jinseong Jeon b59832c5fd FIR: refactor annotation-related utils 2020-09-25 14:45:48 +03:00
Mikhail Glukhikh 86d1a3be37 FIR serializer: throw exception on getting ConeIntegerLiteralType
This commit assumes that ILTs are forbidden
at the end of resolve, at least in public API
2020-09-23 09:00:56 +03:00
Mikhail Glukhikh 5a919cc827 FIR element serializer: drop duplicated approximation code 2020-09-23 09:00:56 +03:00
Mikhail Glukhikh 104f088d4e FIR serializer: throw exception on getting ConeCapturedType
This commit assumes that captured types are forbidden
at the end of resolve, at least in public API
2020-09-23 09:00:56 +03:00
Dmitriy Novozhilov f9de2621b2 [FIR] Minor, fix TODO in constantValues
KT-8507
2020-09-17 17:23:26 +03:00
Mikhail Glukhikh 0436a555d5 [FIR serializer] Support type approximation
Before this commit we relied on a fact that exotic types aren't
possible at serialization stage. However, in non-ABI mode we can get
even a private function (e.g. top-level private), so we have to perform
this approximation.
2020-09-17 09:19:34 +03:00
Dmitriy Novozhilov 324aaaddad [FIR] Rename createArrayOf to createArrayType 2020-09-14 10:57:09 +03:00
Dmitriy Novozhilov 07a3009d43 Introduce new modules for common parts of deserialization 2020-09-11 10:08:37 +03:00
Dmitriy Novozhilov 2f4bd626fc [FIR] Make constant values in fir serialization internal
This is needed to avoid possible name clash with ConstantValue from FE 1.0
2020-09-11 10:08:36 +03:00
Dmitriy Novozhilov cdab00fdc8 [FIR] Remove dependency on :core:deserialization from :compiler:fir:fir-serialization 2020-09-11 10:08:35 +03:00
Dmitriy Novozhilov 9beeb51227 [FIR] Implement fir-specific contract values and fix annotations serialization 2020-09-11 10:08:35 +03:00
Dmitriy Novozhilov 8d2e89a9ea Move ProtoEnumFlags to :core:metadata 2020-09-11 10:08:34 +03:00
Dmitriy Novozhilov 912676d868 [FIR] Introduce ResolutionContext and get rid of components in Candidate 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov a05d6da43b Move descriptor-independent Visibilities to common modules 2020-09-04 11:42:50 +03:00
Jinseong Jeon e8157a5488 FIR: introduce & use various comparators to sort members while de/serialization
#KT-41018 fixed
2020-09-03 13:55:52 +03:00
Dmitriy Novozhilov 94d58c714a [FIR] Cleanup dependencies for fir modules 2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov ed4c6a38b6 [FIR] Move deserialization files to module :compiler:fir:fir-deserialization 2020-09-01 12:00:10 +03:00
Dmitriy Novozhilov e405a02e8e [FIR] Fix contract serialization 2020-08-28 10:59:53 +03:00
Arsen Nagdalian 991b18fec4 [FIR] Add a Fir node that wraps a ConeEffectDeclaration 2020-08-25 12:58:35 +03:00
Dmitriy Novozhilov 20a2ad8223 Move FunctionClassDescriptor.Kind to :core:descriptors.common module 2020-08-25 10:31:36 +03:00
Dmitriy Novozhilov 18ae593700 [FIR] Rename new visibilities to CamelCase
It's more convenient since they are objects now instead of
  const fields in FE 1.0
2020-08-25 10:31:35 +03:00
Dmitriy Novozhilov 43821b681c [FIR] Introduce new Visibility class which not depends on descriptors 2020-08-25 10:31:35 +03:00
Dmitriy Novozhilov e6837a5b8c [FIR] Unify implementations of toSymbol and getSymbolByLookupTag 2020-08-21 15:28:34 +03:00
Jinseong Jeon 47c47be3d3 FIR serializer: serialize annotations on FirTypeRef, not ConeKotlinType 2020-08-04 08:59:16 +03:00
Dmitriy Dolovov 3d9093583f Metadata: 'non-stable parameter names' flag for callables
^KT-34602
2020-07-27 23:11:30 +07:00
Jinseong Jeon d66c6c7e1e FIR serializer: transform KSuspendFunction types too 2020-07-16 12:56:18 +03:00
Jinseong Jeon 1a861b2df9 FIR2IR: don't create synthetic class for enum entry w/o members 2020-07-15 13:36:30 +03:00
Mikhail Glukhikh d846a22e33 [FIR] Introduce & use FirTypeRef.coneType 2020-06-30 18:49:06 +03:00
Jinseong Jeon 67044f22ed FIR serializer: regard property accessors with modifiers as non-default 2020-06-22 12:25:47 +03:00
Dmitriy Novozhilov d01817ce14 Rename InvocationKind to EventOccurrencesRange 2020-06-19 15:53:11 +03:00
Dmitriy Novozhilov 25621d699b Add methods for combine InvocationKind's
There is two methods added -- `or` and `and`

`or` is used by CFA for combining two kinds that came from different
edges of control flow graph

`and` is analog of `+` operator for invocation kinds
2020-06-19 15:53:08 +03:00
Jinseong Jeon 0d2552b0b6 FIR: record and serialize the modifier "fun" for functional interface 2020-06-08 09:42:32 +03:00
Dmitriy Novozhilov 60fd505a9c [FIR] Get rid of FirSealedClass node
Now list of inheritors is hold in attributes of `FirRegularClass`
2020-05-29 10:22:00 +03:00
Mikhail Glukhikh 427973fe48 FIR serializer: fix typo in finding argument name 2020-05-06 13:10:13 +03:00
Mikhail Glukhikh dbd4cecff6 FIR serializer: accept FirClass instead of IrClass to get rid of IR deps 2020-04-28 07:35:12 +03:00
Mikhail Glukhikh 8d85e7a401 FIR serializer: add forgotten type alias serialization 2020-04-28 07:35:10 +03:00