Alexander Gorshenev
b42916b08e
Shuffle some library classes around.
2017-05-19 12:42:13 +03:00
Vasily Levchenko
c8badb0a38
DEBUGINFO: generate forward declaraion of the type instead of kotlin.Any
...
Previously in case type wasn't resolved in codegen (debug info wasn't constructed from IR),
we'd use reference to kotlin.Any? as type, from now we're using forward declaration. What next?
- type parameters... how to deal with?
(cherry picked from commit 579acba659fe52afec638fc00e07a320560bd5fa)
2017-05-18 18:39:31 +03:00
SvyatoslavScherbina
c9d7f976a5
Update compiler to IR with symbols, part 2 ( #581 )
...
The symbols produced by first lowering phases are now bound
2017-05-18 17:54:53 +03:00
Konstantin Anisimov
3000b1ec41
One more lateinit
2017-05-18 19:30:50 +07:00
Konstantin Anisimov
cfe78ad05c
One more lateinit
2017-05-18 19:30:50 +07:00
Konstantin Anisimov
3ee1e114c9
Establish dependency LOWER_INLINE -> LOWER_INLINE_CONSTRUCTORS
2017-05-18 19:30:50 +07:00
Konstantin Anisimov
8f1073cab8
Inliner searches function declaration using descriptor.original
2017-05-18 19:30:50 +07:00
Konstantin Anisimov
de5ff23a2b
Move inline constructor transformation to separate compilation pass
2017-05-18 19:30:50 +07:00
Igor Chevdar
daa302e233
Enabled some tests on coroutines
2017-05-18 11:56:32 +03:00
Igor Chevdar
3e2fccc3f4
Implemented inheritance of lambdas from SuspendFunction
2017-05-18 11:56:32 +03:00
Igor Chevdar
c048fcecce
Rewrote coroutines lowering to use symbols
2017-05-18 11:56:32 +03:00
Igor Chevdar
827f92305c
Rewrote CallableReferenceLowering to use symbols
2017-05-18 11:56:32 +03:00
Igor Chevdar
9120e0b998
Moved common code for IR building to IrBuildUtils
2017-05-18 11:56:32 +03:00
Igor Chevdar
a41552b3c8
Rewrote callable reference lowering
...
For each callable reference a class inherited from KFunctionImpl is built.
2017-05-18 11:56:32 +03:00
Alexander Gorshenev
dc80ba3492
Moved KonanLibrary to org.jetbrains.kotlin.backend.konan.util.File
...
instead of java.io.File.
2017-05-18 04:13:35 +03:00
Alexander Gorshenev
3b5ce031f8
Initial checkin of klib support.
...
The libraries exist in two incarnations:
packed foo.klib and unpacked foo/ .
The compiler when given '-library foo' expects to find either
a foo.klib file and unpack it, or an already unpacked foo/ directory.
The stdlib is always unpacked in dist/klib .
The semantics of -o has changed slightly.
It now accepts '-o foo' and the compiler
either produces foo.kexe or foo.klib .
2017-05-18 04:13:35 +03:00
Alexander Gorshenev
77e093354f
Squash me more.
2017-05-17 22:04:32 +03:00
Alexander Gorshenev
bb40d015d0
Fix up after the code review. Squash me.
2017-05-17 22:04:32 +03:00
Alexander Gorshenev
d4c34b29c1
Added support for inline class members.
...
Inline constructors in particular.
2017-05-17 22:04:32 +03:00
Alexander Gorshenev
2a246a9a3a
Some tests for inline members.
2017-05-17 22:04:32 +03:00
Igor Chevdar
8a789a9ac4
Added test on function overriding return type with Unit
2017-05-16 16:30:29 +03:00
Igor Chevdar
bdb185ee93
Added bridge for functions overriding return type with Unit
2017-05-16 16:30:29 +03:00
Konstantin Anisimov
3e35db5a51
Generate artificial return for inlined constructor
2017-05-16 19:24:52 +07:00
Igor Chevdar
e15878bfe9
Fresh box tests
2017-05-15 15:24:58 +03:00
Alexander Gorshenev
b5fcf0087b
Print deserializer failure stack trace only if verbose mode is on.
2017-05-11 18:24:18 +03:00
Igor Chevdar
8f53018653
Disabled warning that coroutines are experimental
2017-05-11 12:51:05 +03:00
Igor Chevdar
29c30545e5
Coroutines lowering: fixed bug appeared after merging with IR symbols
2017-05-11 11:37:32 +03:00
Alexander Gorshenev
5d1e6acb7c
Mangle "*" as #STAR, rather than an explicit variance plus a bound.
2017-05-10 19:30:22 +03:00
Igor Chevdar
39d1b8956d
Test on abstract bridge
2017-05-10 15:44:22 +03:00
Igor Chevdar
97fe5c6b46
Abstract methods can also have bridges
2017-05-10 15:44:22 +03:00
Konstantin Anisimov
715db233f9
Code formatting
2017-05-10 18:31:02 +07:00
Konstantin Anisimov
eba8a50c43
Code formatting
2017-05-10 18:31:02 +07:00
Konstantin Anisimov
ba1f3d502e
Use annotation to distinct inline constructor
2017-05-10 18:31:02 +07:00
Konstantin Anisimov
31a24d4607
Replace DelegatingConstructorCall with IrCall
...
Replace "this" with result of IrCall
2017-05-10 18:31:02 +07:00
Vasily Levchenko
432a2c1dda
CODEGEN: typo missed int type
2017-05-10 10:52:28 +03:00
SvyatoslavScherbina
88e3c1d05c
Implement parsing additional interop header directly from .def file ( #557 )
2017-05-09 19:48:19 +03:00
Svyatoslav Scherbina
c2d556503d
Fix bug in function inlining
...
Fake overrides have IR now, so their declarations can be found by inliner
but are fake and thus unusable.
2017-05-08 13:31:45 +03:00
Svyatoslav Scherbina
68e6ff614d
Fix bug in local declarations lowering
...
IrCall doesn't provide `.shallowCopy` now, so the unreachable buggy code
became reachable.
2017-05-08 13:31:45 +03:00
Svyatoslav Scherbina
0b1e7c9526
Update compiler to IR with symbols, part 1
...
The produced symbols are currently unbound and thus useless.
2017-05-08 13:31:45 +03:00
Alexander Gorshenev
065fb6def5
Don't serialize empty packages for modules with dependencies.
2017-05-05 12:52:50 +03:00
Vasily Levchenko
9d63662fbe
CODEGEN: generation type info for complex types and refactoring.
...
- unchecked_cast warning suppression
- move subroutineType ext function to DebugUtils.
- there is only one diType in caodegen
- generate type references for complex types if they are references
- generating array types
2017-05-04 20:35:44 +03:00
Vasily Levchenko
dc8bcc677a
DEBUGINFO: binding enchancement && composite type support
...
- structured datatypes usable in debug info
- bindings for llvm/Support/Dwarf.h (llvm 3.9) makes easier introducing dwarf constants from LLVM
- added HANDLE_DW_LANG generating sequence DW_LANGs (DW_LANG_Kotlin equals DW_LANG_C89 for now).
- refactoring : g/c typo
- tag (DwarfTag) of the type added as parameter in DICreateReplaceableCompositeType
- binding for creating reference type
- binding for creating array type.
2017-05-04 20:35:44 +03:00
Igor Chevdar
8fbc06809a
Codegen: optimization of catch (t: Throwable) {}
2017-05-04 20:44:36 +05:00
Igor Chevdar
39c6aa0f2c
Fixed bug in DeepCopyIrWithDescriptors
2017-05-04 20:44:36 +05:00
Igor Chevdar
4dcee48e1f
Removed CodeContext from scope of a variable
2017-05-04 20:44:36 +05:00
Igor Chevdar
ca4beb171b
Pulled up functions for working with stack on top level
2017-05-04 20:44:36 +05:00
Igor Chevdar
e600c93dfa
Enabled tests with finally blocks on coroutines + added tests
2017-05-04 20:44:36 +05:00
Igor Chevdar
1d9ccb36f3
Renamed IrInlineFunctionBody to IrReturnableBlock
2017-05-04 20:44:36 +05:00
Igor Chevdar
667b5fb936
Removed finally blocks handling from code generator
2017-05-04 20:44:36 +05:00
Igor Chevdar
3c84e39360
Finally blocks lowering
2017-05-04 20:44:36 +05:00