Alexander Udalov
bf5ca2ed84
Cleanup compiler warnings in IR-related modules
2019-09-03 19:32:57 +02:00
Roman Artemev
6bea403338
[KLIB] Fix ir serializer output format
2019-09-03 14:21:32 +03:00
Roman Artemev
1e547dd1cd
[IR SERIALIZATION] Add more informative error message
2019-09-03 14:21:31 +03:00
Roman Artemev
31f3e668d2
[IR SERIALIZATION] Cleanup mangler interface
2019-09-03 14:21:31 +03:00
Roman Artemev
2e0ab8ba3f
[IR SERIALIZATION] Fix ONLY_DECLARATION_HEADERS mode
2019-09-03 14:21:31 +03:00
Roman Artemev
0c7454c918
[IR SERIALIZATION] Fix forward Declarations in deserializaer
2019-09-03 14:21:31 +03:00
Roman Artemev
2bd3d90fe0
[IR SERIALIZATION] Link depend modules lazily
2019-09-03 14:21:31 +03:00
Roman Artemev
aa8b58e396
[IR SERIALIZATION] Get rid of UniqIdKey
2019-09-03 14:21:31 +03:00
Roman Artemev
55f06ecff5
[IR SERIALIZATION] Fix rebase
2019-09-03 14:21:30 +03:00
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