Commit Graph

1559 Commits

Author SHA1 Message Date
Vasily Levchenko 80587b65ee compiler: 1.1-20170206.215253-402 2017-02-07 11:21:07 +03:00
Konstantin Anisimov 49f168a7f0 Inline tests are suspended 2017-02-06 20:32:59 +07:00
Ilya Matveev e0a1536c9b backend: Generalize createFunctionIrBuilder function. 2017-02-06 15:25:48 +03:00
Ilya Matveev 395b49e62b backend: Remove string concatenation from codegen 2017-02-06 15:25:48 +03:00
Ilya Matveev 51a63222b9 backend: String concatenation lowering 2017-02-06 15:25:48 +03:00
Ilya Matveev f251bd2b61 backend: Add IrLetSequence extension for IrBlockBuilder 2017-02-06 15:25:48 +03:00
Nikolay Igotti 4865a5dd60 Temporrary disable inline and restore interop lowering. 2017-02-06 14:58:43 +03:00
Nikolay Igotti 6c33db34da Assert type used in virtual dispatch. 2017-02-06 14:40:12 +03:00
KonstantinAnisimov f2a611d4d2 Merge pull request #216 from JetBrains/inline
Inline
2017-02-06 17:39:11 +07:00
KonstantinAnisimov dcb0a074da Merge branch 'master' into inline 2017-02-06 17:21:28 +07:00
Konstantin Anisimov 3359758ceb Merge 2017-02-06 16:53:26 +07:00
Konstantin Anisimov 17c3f9fd86 Typo fixed 2017-02-06 16:49:12 +07:00
Konstantin Anisimov 27de5850d9 Comments added. Variables renamed 2017-02-06 16:49:12 +07:00
Nikolay Igotti 84635b0eca Improve object arrays support. (#182)
Also fix the way how symbol names are being generated. Before arrays2.kt was not linking.
2017-02-06 16:45:17 +07:00
Nikolay Igotti 5808df477a Cycle collector. (#175) 2017-02-06 16:45:14 +07:00
Konstantin Anisimov 35807b4f40 Merge 2017-02-06 16:45:14 +07:00
Konstantin Anisimov 99ef87ec78 TESTS: new tests added 2017-02-06 16:45:14 +07:00
Konstantin Anisimov 6a1745e8ac TESTS: new inline tests added 2017-02-06 16:44:53 +07:00
Svyatoslav Scherbina 150d0f6cd5 backend: update kotlin-compiler and remove code contributed to Kotlin
Update kotlin-compiler to 1.1-20170112.203631-353

Also remove workarounds for fixed bugs.
2017-02-06 16:44:00 +07:00
Konstantin Anisimov 8eb35fc1dc Typo fixed 2017-02-06 16:29:42 +07:00
Svyatoslav Scherbina 56bab774f1 backend/tests: add interop0 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 5e54c29afb buildSrc: implement RunInteropKonanTest 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 97cd2b4d5f backend: implement '-nativelibrary' command line argument 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina cf3b95fb3d Interop/StubGenerator, NativeInteropPlugin: add support for Kotlin Native
Also add minor improvements.
2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 4b694225c1 backend/codegen, runtime: support interop intrinsics and natives 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 3892820052 backend: lower interop 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 7f90ce3d8a backend: support native interop value types
also improve reliability of `==` lowering
2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 1bafee0ac3 backend: add utils for interop support 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina d02fd5ec1b build: add Interop/Runtime to stdlib 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 6939398521 Interop/Runtime: fix major bug: alloc C strings using correct placement 2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 49815f72e0 Interop/Runtime: add support for Kotlin Native
Also add minor improvements, fix bugs and workaround missing features.
2017-02-06 11:58:10 +07:00
Svyatoslav Scherbina 91aab11e01 backend: remove special handling for setter call because it is incorrect
Handle it as usual call.
2017-02-06 11:58:10 +07:00
Igor Chevdar 2f9bde4482 Local objects (#215)
* bug fix

* bug fix with nested inner classes

* - fixed FixMeInner
- support of inner classes in local classes
- support of object expressions in initializers

* comments

* merged modification

* - review fixes
- tests

* review fixes

* review fixes
2017-02-03 19:41:34 +05:00
Konstantin Anisimov bd129d62c9 Comments added. Variables renamed 2017-02-03 19:36:01 +07:00
Konstantin Anisimov 90b12e3041 Merge 2017-02-03 19:26:31 +07:00
Konstantin Anisimov 4306215b18 Merge 2017-02-03 19:19:00 +07:00
Konstantin Anisimov 697140de49 TESTS 2017-02-03 18:09:33 +07:00
Konstantin Anisimov 922eb9fac3 Non local return implemented 2017-02-03 18:09:28 +07:00
Konstantin Anisimov d966cae14a Lambda without parameters is inlined 2017-02-03 18:07:50 +07:00
Konstantin Anisimov 279684f6aa Intermediate results 2017-02-03 18:07:50 +07:00
Konstantin Anisimov 5ce0e2c74f Inlining moved in the beginning of lowering passes 2017-02-03 18:07:05 +07:00
Konstantin Anisimov 70b35f9aa7 TESTS: new tests added 2017-02-03 18:05:56 +07:00
Konstantin Anisimov 8dece0f817 Evaluation of parameter expression implemented 2017-02-03 18:05:40 +07:00
Konstantin Anisimov 97411bca6e TESTS: new test added 2017-02-03 18:05:40 +07:00
Konstantin Anisimov 02e604cc71 TESTS: new tests added 2017-02-03 18:05:40 +07:00
Konstantin Anisimov 9e3fe3a41c TESTS: new inline tests added 2017-02-03 18:05:38 +07:00
Nikolay Igotti ae49bd8432 Improve object arrays support. (#182)
Also fix the way how symbol names are being generated. Before arrays2.kt was not linking.
2017-02-03 18:04:36 +07:00
Vasily Levchenko 26ee99185c IR: default parameter extension support
for code
```
fun Int.foo(a:Int, b:Int = a + 1, c:Int = a + b) = a + b +c

fun main(arg:Array<String>) {
  42.foo(0)
}
```
we generate IR representation corresponding to the following code
```
fun Int.foo(a:Int, b:Int, c:Int) = a + b +c

fun foo_default(a:Int, b:Int, c:Int, __mask__:Int, __receiver__:Int):Int {
    var tmpb:Int = 0
    if ((__mask__ and (1 shl 1)) != 0)
        tmpb = a + 1
    else
        tmpb = b
    var tmpc:Int = 0
    if ((__mask__ and (1 shl 2)) != 0)
        tmpc = a + tmpb
    else
        tmpc = c
    return __receiver__.foo(a, tmpb, tmpc)
}

fun main(arg:Array<String>) {
  foo_default(0, 0, 0, 6 /* (1 shl 1) | (1 shl 2)*/, 42)
}
```

NOTE: if call provides all arguents we don't emit call of _default function.
2017-02-03 18:03:14 +07:00
Nikolay Igotti e3662bfa1e Cycle collector. (#175) 2017-02-03 18:00:58 +07:00
Konstantin Anisimov 43a6cf722d merge 2017-02-03 11:49:42 +07:00