Commit Graph

1870 Commits

Author SHA1 Message Date
Steven Schäfer d89d68e3df JVM IR: Cache SAM wrappers in top-level classes and use proper naming scheme 2019-09-06 15:11:59 +02:00
Steven Schäfer 2be4abe9a6 Refactoring: Consistently use Symbols in JvmSymbols 2019-09-06 15:11:59 +02:00
Steven Schäfer c77fa1ecd6 JVM IR: Fixes in SAM lowering 2019-09-06 15:11:59 +02:00
Steven Schäfer e7410348a7 JVM IR: Fix visibility for @InlineOnly functions 2019-09-06 12:12:58 +02:00
Steven Schäfer ee45933e33 JVM IR: Create local classes in PropertyReferenceLowering
In particular, we should not cache classes or instances for property
references, since they may be used inside of inline funtions. This also
allows us to mark the $$delegatedProperties array as package private.
2019-09-06 12:12:58 +02:00
Steven Schäfer 626f4c94f6 Handle special case visibility rules in LocalDeclarationsLowering 2019-09-06 12:12:58 +02:00
pyos 20626e4aaf Make ReturnableBlockLowering common
and remove special handling in JVM_IR codegen.
2019-09-05 15:48:26 +02:00
Mads Ager 75f9532959 [IR] Avoid duplicate IR elements in for loops lowering. 2019-09-05 11:33:26 +02:00
Roman Artemev 0040298eac Fix master
- improve assertion message
 - compare correct file paths
 - fix C JS BE testData
2019-09-04 14:37:14 +03:00
Mads Ager 3f28b71509 [IR] Fix issue getting the length property from CharSequence bounded type parameter
Use the class of the subtype of CharSequence when available. When
it is not (for type parameters bounded by CharSequence) call the
CharSequence getter and 'get' method. Using the most specific type
posible fixes the forInStringSpecialized test that expects the
use of INVOKEVIRTUAL and not INVOKEINTERFACE.

Add tests for the type parameter use.
2019-09-03 20:18:03 +02:00
Alexander Udalov 4953f67563 JVM IR: do not use KotlinTypeMapper indirectly via InlineCodegen
Move JVM signature and method owner computation out of InlineCodegen's
constructor to the call sites.
2019-09-03 19:33:54 +02:00
Alexander Udalov bf5ca2ed84 Cleanup compiler warnings in IR-related modules 2019-09-03 19:32:57 +02:00
Igor Chevdar 5bd88f3191 [IR] ForLoopsLowering: fixed problems with type parameters 2019-09-03 14:40:06 +03:00
Roman Artemev 21c7c89dbc [JS KLIB IC] Support incremental klib generation for JS IR
Note: the following test do not work yet because of IrField FO issue
testSecondaryConstructorAdded
testCompanionObjectInheritedMemberChanged
2019-09-03 14:21:32 +03:00
Roman Artemev 6bea403338 [KLIB] Fix ir serializer output format 2019-09-03 14:21:32 +03:00
Roman Artemev 1cdff7810e [Psi2Ir] Fix Lazy Fake override field
- add comment about problem with DeserializedPropertyDescriptor
2019-09-03 14:21:31 +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 125982841a [IR SERIALIZATION] Fix clashes 2019-09-03 14:21:30 +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 f14107bf65 [IR] Sort dependencies a bit early 2019-09-03 14:21:29 +03:00
Roman Artemev 1465121266 [IR] Split declaration & descriptor tables 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
Mads Ager 85b1e0165b [IR] For loop lowering for CharacterSequence.indices. 2019-09-03 13:18:21 +02:00
Steven Schäfer 102a3d60e0 IR: Consistently copyAttributes in DeepCopyIrTreeWithSymbols
This was missing for IrFunctionReferences, which caused problems when
copying default parameters before CallableReferenceLowering in the
JVM_IR backend.
2019-09-02 19:55:36 +02:00
Svyatoslav Kuzmich 9594e9b3b1 [JS IR BE] Initial export generation 2019-08-30 13:15:37 +03:00
Svyatoslav Kuzmich 6670180782 [JS IR BE] Use internal visibility for generated helper methods 2019-08-30 13:15:37 +03:00
Vasily Levchenko 22c53e14e6 [IR][inliner] fixed occasional endless recursion in InlinerExpressionLocationHint::toString 2019-08-30 12:23:18 +03:00
Mads Ager 8ed1317839 [IR] For loop lowering for iteration over CharacterSequences.
Change-Id: I7aeadfffc80f791ec19a3607e219c1dc4de028db
2019-08-30 09:35:59 +02:00
Vasily Levchenko d6c5fbace0 [IR][inliner] prevent of parameters location information loss 2019-08-29 16:53:56 +03:00
Steven Schäfer fd2ad89799 JVM IR: Write ACC_DEPRECATED flags 2019-08-28 19:41:12 +02:00
Steven Schäfer a90ac2438d Set correct field visibility in psi2ir 2019-08-28 19:41:11 +02:00
Mads Ager 6c7a904663 Psi2Ir: Mark accessors with no bodies as default accessors.
They are currently marked as defined even when they get a
default implementation. That makes it hard to figure out
if the accessor should be removed when introducing a backing
field in the JVM_IR backend.
2019-08-28 19:25:13 +02:00