Roman Artemev
16be3b6d6e
[IR SERIALIZATION] Add deserializaFullModule API
2019-09-03 14:21:30 +03:00
Roman Artemev
d9affc5abb
[IR SERIALIZATION] Raname IrIrSeriazlizedIrFile -> SerializedIrFile
2019-09-03 14:21:30 +03:00
Roman Artemev
f6339bcf93
[IR SERIALIZATION] Handle UniqId clashes
2019-09-03 14:21:30 +03:00
Roman Artemev
5e14b94a88
[IR SERIALIZATION] Do not track non-metadata descriptors in descriptor table
2019-09-03 14:21:30 +03:00
Roman Artemev
df5f6a2a12
[IR SERIALIZATION] Refactored uniqId allocation
...
- split DeclarationTable into local and global one
- minimize usages of kotlin mangler
- clean up interfaces
2019-09-03 14:21:30 +03:00
Roman Artemev
19b5d57f0e
[IR PROTO] Delete unused proto.java files
2019-09-03 14:21:30 +03:00
Roman Artemev
b7b951c8c8
[IR] Refactoring
2019-09-03 14:21:30 +03:00
Roman Artemev
ea42eb6a5c
[IR] Fix rebase
2019-09-03 14:21:29 +03:00
Roman Artemev
d50eb5ce52
[IR SERIALIZATION] Make [de]serialization processes incremental
...
- Use local uniqID local indexation file-local
- Rethink the way declaration is looked for
- Store in public file index only publicly accessible symbols
- refactor API
- code clean up
2019-09-03 14:21:29 +03:00
Roman Artemev
96a2cc1f17
[JS IR] Clean up Declaration Table code
2019-09-03 14:21:29 +03:00
Roman Artemev
a7714a5589
[JS IR BE] Split IrModule/IrFile serializers
2019-09-03 14:21:29 +03:00
Roman Artemev
15a49cf2aa
[IR BE] Rename IrModuleSerializer -> IrFileSerializer
2019-09-03 14:21:29 +03:00
Roman Artemev
94a03c9cb4
[IC KLIB] Serialization infrastructure refactoring
...
- remove IrModule header
- put IrDeclaration and its body into separate files
- use only one type of IrData index
- separate deserialization of declarations and its bodies
- introduce FqName message
2019-09-03 14:21:29 +03:00
Roman Artemev
5a45960c04
[IR] Do not interact with file system during Ir Serialization
...
- make `IrModuleSerializer` produce ByteArrays with serialized data
- isolate file system access on Klib writer
2019-09-03 14:21:28 +03:00
Ilya Matveev
cafe2cdb12
IR: Fix fake-override resolution for fields
...
Earlier we used a result of a corresponding getter resolution to
obtain a fake overridden field. This approach is incorrect because
the getter resolved may not contain a backing field. This patch
fixes the issue by using the overriddenSymbols property of an
IrField directly.
Issue #KT-33034 fixed
2019-08-13 19:56:45 +07:00
Igor Chevdar
226013353d
[IrSerializer] Removed hacks with functional interfaces
2019-08-12 17:07:43 +03:00
Igor Chevdar
00dc335559
[IrSerializer] Preparations for functional interfaces handling
2019-08-12 17:07:43 +03:00
Dmitry Petrov
f590d4da9e
IR: IrTypeAlias: serialize/deserialize new IR objects
...
Add uniqId for typealias declarations.
Implement WrappedTypeAliasDescriptor.
2019-08-06 12:42:43 +03:00
Dmitry Petrov
92984b2626
Serialize/deserialize IrFunctionExpression
2019-07-19 11:36:19 +03:00
Dmitry Petrov
28215186ca
IR serialization: migrate to new generated Java classes structure
2019-07-17 12:00:34 +03:00
Dmitry Petrov
8baa7dfe22
Generated Java classes for Kotlin IR protobuf
2019-07-17 12:00:34 +03:00
Dmitry Petrov
2305bea2b5
Generate IR protobuf classes as multiple Java files
...
Otherwise KotlinIr.java becomes too big for IDEA to swallow in the
default configuration.
2019-07-17 12:00:34 +03:00
Igor Chevdar
1e8f7c2b7d
Removed IrCallWithShallowCopy
2019-06-27 19:04:01 +03:00
Igor Chevdar
dff0ac8866
[Serializer] UniqId clashes handling
2019-06-27 19:04:00 +03:00
Igor Chevdar
175dfb41b6
[IrSerializer] Supported all annotations + refactoring
2019-06-27 19:04:00 +03:00
Alexander Gorshenev
aa73420312
Provide the default hashing function
2019-06-27 13:56:25 +03:00
Dmitry Petrov
7a44b0f951
IR: IrTypeOperatorCall.classifierSymbol can be computed from typeOperand
2019-06-26 09:39:16 +03:00
Dmitry Petrov
760806a1ac
IR: IMPLICIT_DYNAMIC_CAST
...
Generate IMPLICIT_DYNAMIC_CAST for implicit casts from `dynamic` to `T`
2019-06-26 09:39:16 +03:00
Alexander Gorshenev
76088cdf00
Bind WrappedVariableDescriptorWithAccessors in IR deserializer
2019-06-25 15:18:04 +03:00
Roman Artemev
88e92be091
[IR] Fix name clash between properties with the same fqn
...
Promote ABI version
2019-06-20 12:08:55 +03:00
Roman Artemev
6d2ad63db3
[IR] Support IrLocalDelegatedPropertyReference in klib
2019-06-14 18:40:59 +03:00
Roman Artemev
008cf03b06
[IR] Consider TypeParameter as public declaration and serialize it properly
...
- Add test case when TypeParameter of generic property is exposed outside its module
2019-06-14 18:40:59 +03:00
Roman Artemev
efaf5a9947
[IR] Fix serialization of ENUM_SPECIAL members
2019-06-14 18:40:59 +03:00
Alexander Gorshenev
d13b350716
Don't serialize descriptor references for EnumEntry members
2019-06-14 17:12:39 +03:00
Igor Chevdar
3e8f3e6f00
[Klib] Split up IR header tables onto three parts
...
There was one monolith protobuf at irHeader.knd, it was
split up onto 4 parts due to performance issues:
- a small irHeader with some basic info about a module
- symbols table
- types table
- strings table
These 3 tables are then mmapped and accessed by index.
2019-06-10 13:41:57 +03:00
Svyatoslav Kuzmich
cd651be461
[JS IR BE] Migrate JS BE to common klib utils
2019-06-05 11:15:45 +03:00
Igor Chevdar
b060acf01d
KotlinMangler: added IrType.isInlined
...
Added possibility to specify when IrType corresponds to an inline class
2019-05-30 14:12:03 +03:00
Alexander Udalov
8dc34ae7b9
IR: rename {name,fqName}Safe -> {name,fqName}ForIrSerialization
...
These properties have a very specific detail in their behavior, in that
the constructor's name is set to be "<init>". While this is OK for the
IR serialization, this may not always be expected in other cases, and
their rather common names (`name`, `fqNameSafe`) suggested that these
properties could be used in generic contexts.
Change all usages outside IR serialization to use
`IrDeclarationWithName.name` and nullable
`IrDeclarationWithName.fqNameWhenAvailable` instead
2019-05-24 14:09:09 +02:00
Alexander Gorshenev
bd78e7e0aa
Move property serialization to symbols
...
Make sure private field's wrapped descriptor is bound
2019-04-29 04:10:00 +03:00
Alexander Gorshenev
2c026114ae
Made IrStatementOrigin serialization field optional for all statements
2019-04-29 04:04:16 +03:00
Alexander Gorshenev
85f85fb3e8
IrStatementOrigin support in newly introduced IrDelegatedPropertyReference
2019-04-29 04:04:16 +03:00
Alexander Gorshenev
19bd01cc8a
Introduced proper IrStatementOrigin serialization.
2019-04-29 04:04:16 +03:00
Roman Artemev
2a3ce8e9f1
Serialize IrConstructorCall
2019-04-26 17:43:26 +03:00
Dmitry Petrov
b78d1bb2b9
IrConstructorCall support in JVM_IR, JS_IR, and FIR2IR
2019-04-26 17:43:25 +03:00
Dmitry Petrov
e3fd74a580
IR: annotations are represented as IrConstructorCall elements
...
Also, they are rendered somewhat nicer
2019-04-26 17:43:24 +03:00
Dmitry Petrov
db7bcb6464
IR proto: IrConstructorCall in protobuf format
2019-04-26 17:43:24 +03:00
Leonid Startsev
406896eaf0
Implement equals/hashcode for IrDeclarationOrigin so deserialized unknown origins would be compared correctly
2019-04-26 14:59:51 +03:00
Dmitry Gridin
37c856290f
Fix minor compile warnings
2019-04-25 19:47:39 +07:00
nikita.movshin
65244b4bea
Update copyright.
...
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00
Alexander Gorshenev
3ae64061c1
Minimal tweaks in IR Validation code just to be able to turn it on in Native.
2019-04-22 19:42:33 +03:00