Commit Graph

6348 Commits

Author SHA1 Message Date
Ian Lynagh
c72377cf2c Merge pull request #9711 from igfoo/igfoo/integ
Kotlin: Add integration tests
2022-06-27 11:08:12 +01:00
Ian Lynagh
861a368734 Merge pull request #9703 from igfoo/igfoo/generated
Kotlin: Record more kinds of elements as compiler-generated
2022-06-24 19:46:56 +01:00
Ian Lynagh
0ddd5bb162 Merge pull request #9709 from igfoo/igfoo/isLocalFunction
Kotlin: Let useFunction worry about isLocalFunction for us
2022-06-24 19:22:43 +01:00
Ian Lynagh
0b312b61e4 Kotlin: qlformat some test queries 2022-06-24 18:35:58 +01:00
Ian Lynagh
31b3c1fff8 Kotlin: Add integration tests 2022-06-24 17:33:58 +01:00
Ian Lynagh
73a79e064c Kotlin: Accept test output 2022-06-24 16:24:41 +01:00
Ian Lynagh
4791aaae52 Kotlin: Use an enum for compiler-generated-kinds
For now this is in KotlinFileExtractor, but we can move it out later if
we have generated things elsewhere.
2022-06-24 15:19:50 +01:00
Ian Lynagh
c0b6d1d093 Kotlin: Let useFunction worry about isLocalFunction for us 2022-06-24 14:24:02 +01:00
Ian Lynagh
46446f9dfa Kotlin: Move the isLocalFunction check deeper into useFunction 2022-06-24 14:22:45 +01:00
Ian Lynagh
27b83a0b33 Java: Add an upgrade script 2022-06-24 14:01:07 +01:00
Ian Lynagh
008a8f0bba Kotlin: Add an enum class to the methods test 2022-06-24 14:00:47 +01:00
Ian Lynagh
20817a54da Kotlin: Mark enum class special members as cmopiler-generated 2022-06-24 14:00:47 +01:00
Ian Lynagh
c5d6ca7afc Kotlin: Accept method test changes 2022-06-24 14:00:47 +01:00
Ian Lynagh
50eeb47244 Kotlin: Mark <clinit> as compiler-generated 2022-06-24 14:00:47 +01:00
Ian Lynagh
c0600820ac Kotlin: Update methods test 2022-06-24 14:00:47 +01:00
Ian Lynagh
c06eb09100 Kotlin: Record that DEFAULT_PROPERTY_ACCESSOR are compiler-generated 2022-06-24 14:00:47 +01:00
Ian Lynagh
aefd89ed49 Kotlin: Add compiler-generated info to methods test 2022-06-24 14:00:47 +01:00
Ian Lynagh
5fc294d49e Kotlin: Record that generated data class members are compiler-generated 2022-06-24 14:00:47 +01:00
Tamás Vajk
381bcf7dad Merge pull request #9153 from tamasvajk/kotlin-simplify-loop-breaks-1
Kotlin: Unify loop `break`/`continue` statement handling between java and kotlin
2022-06-24 14:45:57 +02:00
Chris Smowton
d0e521ef4a Merge pull request #9681 from smowton/smowton/fix/reintroduce-obinit
Kotlin: reintroduce obinit when we have multiple secondary constructors and no primary
2022-06-24 10:25:24 +01:00
Chris Smowton
fcc8691394 Merge pull request #9625 from smowton/smowton/test/kotlin-1-7-support
Switch to using Kotlin 1.7 by default
2022-06-24 10:24:54 +01:00
Ian Lynagh
ae16a874c8 Merge pull request #9694 from igfoo/igfoo/useFunction
Kotlin: Some useFunction simplification
2022-06-24 09:31:14 +01:00
Ian Lynagh
eb1b3f801d Merge pull request #9689 from igfoo/igfoo/makeprivate
Kotlin: Make some more methods private
2022-06-23 21:28:07 +01:00
Ian Lynagh
bee703a870 Kotlin: Inline away useFunctionCommon 2022-06-23 21:23:21 +01:00
Chris Smowton
a124d83265 Autoformat 2022-06-23 20:13:27 +01:00
Ian Lynagh
3934491dcc Kotlin: Refactor useFunction*
They now work in a way more similar to other families of functions we
have.
2022-06-23 19:19:47 +01:00
Ian Lynagh
ab19d8c3c3 Kotlin: Move useFunctionCommon 2022-06-23 17:59:28 +01:00
Ian Lynagh
bd8a8d00aa Kotlin: Make some more methods private 2022-06-23 16:44:06 +01:00
Chris Smowton
b5010337a4 Avoid extracting needless obinit methods where we're only extracting a class' outline. 2022-06-23 16:26:54 +01:00
Chris Smowton
3cf7f96298 Ensure <obinit>'s return type is void not Unit 2022-06-23 16:26:54 +01:00
Chris Smowton
af5230349b Kotlin: reintroduce obinit when we have multiple secondary constructors and no primary
This avoids DB inconsistencies because complex initialisers are extracted to more than one function.
2022-06-23 16:26:54 +01:00
Chris Smowton
1aae3c5f5e Fix whenexpr test
Prior to Kotlin 1.7 the gratuitous `?` was ignored for typing purposes; now it yields a `String?`. We should make the test work everywhere by using a real nullable type.
2022-06-23 15:34:40 +01:00
Chris Smowton
e64a8bc79a Use binary names not fqnames for uniquing IrDeclarations
Otherwise we fall into the trap of confusing the two overloads of `MapsKt.iterator` which have differing jvmnames.
2022-06-23 15:34:40 +01:00
Chris Smowton
57ea34d3ff Unique external classes/functions by fqname
Previously we used the IrDeclaration itself, but in Kotlin 1.7 this can be ambiguous because we can get more than one copy of a class in different modules.
2022-06-23 15:34:40 +01:00
Chris Smowton
8c57308661 Prevent extracting hidden functions
I'm not sure how these looked in 1.6 and below yet, but in 1.7 they appear with visibility = public, but a descriptor field set to indicate they have a name clash with a 'real' function.
2022-06-23 15:34:40 +01:00
Chris Smowton
2b2c384933 Kotlin: Move from 1.7.0-RC to 1.7.0 2022-06-23 15:34:40 +01:00
Chris Smowton
4899aabb05 Switch to using Kotlin 1.7 by default 2022-06-23 15:34:40 +01:00
Chris Smowton
45c85228bd Implement Kotlin 1.7 support
- Implement getIrStubFromDescriptor for Kotlin 1.7
- Stop using ClassSymbol.signature, which is now only populated for classes built from Kotlin, and noteworthily is null for primitive and other internally-synthesised types.
2022-06-23 15:34:40 +01:00
Ian Lynagh
3b2b884f09 Merge pull request #9683 from igfoo/igfoo/getDiagnosticLocation
Kotlin: Remove unused function getDiagnosticLocation
2022-06-23 14:09:00 +01:00
Ian Lynagh
1713c416c0 Kotlin: Remove unused function getDiagnosticLocation 2022-06-23 13:07:09 +01:00
Tamas Vajk
cf18a9a04b Fix bad join order in Shadowing::shadows
Fixes the bad join order in `Shadowing::shadows`:
Tuple counts for Shadowing::shadows#f4fb89a3#ffff@c4b8a90j:
           182915  ~0%    {2} r1 = Variable::LocalVariableDecl::getCallable#dispred#f0820431#ff AND NOT Shadowing::shadows#f4fb89a3#ffff#antijoin_rhs(Lhs.0, Lhs.1)
           182915  ~0%    {3} r2 = JOIN r1 WITH localvars ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Rhs.2
           182915  ~3%    {4} r3 = JOIN r2 WITH Member::Member::getDeclaringType#dispred#f0820431#bf ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0, Lhs.2
           182833  ~0%    {4} r4 = JOIN r3 WITH classes ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.0
           182833  ~3%    {5} r5 = JOIN r4 WITH Element::Element::getName#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.0, Lhs.1, Lhs.3, Rhs.1
        183352620  ~5%    {5} r6 = JOIN r5 WITH Member::Field::getType#dispred#f0820431#bf_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.3, Lhs.1, Lhs.2, Lhs.4
            40529  ~0%    {5} r7 = JOIN r6 WITH Member::Field::getDeclaringType#dispred#f0820431#fb ON FIRST 2 OUTPUT Lhs.0, Lhs.4, Lhs.2, Lhs.3, Lhs.1
              678  ~4%    {4} r8 = JOIN r7 WITH Element::Element::getName#dispred#f0820431#ff ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0
              670  ~4%    {4} r9 = r8 AND NOT Member::Field::isStatic#dispred#f0820431#b(Lhs.3)
              670  ~3%    {4} r10 = SCAN r9 OUTPUT In.0, In.2, In.3, In.1
                          return r10

After the fix:
Tuple counts for Shadowing::shadows#f4fb89a3#ffff@95ca976v:
        182915  ~0%    {2} r1 = Variable::LocalVariableDecl::getCallable#dispred#f0820431#ff AND NOT Shadowing::shadows#f4fb89a3#ffff#antijoin_rhs(Lhs.0, Lhs.1)
        182915  ~0%    {3} r2 = JOIN r1 WITH localvars ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Rhs.2
        182915  ~0%    {4} r3 = JOIN r2 WITH Member::Member::getDeclaringType#dispred#f0820431#bf ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2, Rhs.1
        182915  ~7%    {5} r4 = JOIN r3 WITH Element::Element::getName#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.2, Lhs.0, Lhs.1
           678  ~4%    {4} r5 = JOIN r4 WITH Shadowing::getField#f4fb89a3#ffff ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, Rhs.3
           670  ~4%    {4} r6 = r5 AND NOT Member::Field::isStatic#dispred#f0820431#b(Lhs.3)
           670  ~3%    {4} r7 = SCAN r6 OUTPUT In.0, In.2, In.3, In.1
                       return r7
2022-06-23 10:30:39 +02:00
Tamas Vajk
e65a046235 Fix test file after rebase 2022-06-23 09:51:48 +02:00
Tamas Vajk
579bfc22f3 Fix performance change in SecurityFlag 2022-06-23 08:46:33 +02:00
Tamas Vajk
79ec998636 Fix DB change compatibility to backwards 2022-06-23 08:45:11 +02:00
Tamas Vajk
7dad2f7fcb Fix DB upgrade properties 2022-06-23 08:45:11 +02:00
Tamas Vajk
074b90ea1a Add change note 2022-06-23 08:45:11 +02:00
Tamas Vajk
053ca2e940 Update DB stats file 2022-06-23 08:45:11 +02:00
Tamas Vajk
e03b48f293 Add DB upgrade folder 2022-06-23 08:45:11 +02:00
Tamas Vajk
dabc956dbf Unify loop break/continue statement handling between java and kotlin 2022-06-23 08:45:11 +02:00
Chris Smowton
46e6203493 Merge pull request #9626 from smowton/smowton/fix/dont-emit-synthetic-parameter-names
Kotlin: don't emit synthetic parameter names
2022-06-22 15:30:54 +01:00